logback详解

logback详解

这边注意一下,在LogBack里面配置的 LOG_HOME value=/home/ma/yuzheng/app/logs 不仅可以在linux环境生效,window下也生效,要注意的是这个/代表的根路径就变成了当前项目所在系统盘的路径(项目放在d盘,这个/根路径就代表着d:/)

现象描述:(接口部分代码)
			System.out.println("----");
            e.printStackTrace();
            log.info("日志info级别");
            log.error("日志error级别");
  • 控制台输出:

    • [2023-05-12 10:33:27,226 INFO  http-nio-10012-exec-2] Initializing Servlet 'dispatcherServlet'
      [2023-05-12 10:33:27,227 INFO  http-nio-10012-exec-2] Completed initialization in 1 ms
      ----
      [2023-05-12 10:33:27,409 INFO  http-nio-10012-exec-2] 日志info级别
      [2023-05-12 10:33:27,409 ERROR http-nio-10012-exec-2] 日志error级别
      //下面都是红字打印的e.prinkStack();
      java.lang.IllegalArgumentException: Input byte array has wrong 4-byte ending unit
      	at java.util.Base64$Decoder.decode0(Base64.java:704)
      	at java.util.Base64$Decoder.decode(Base64.java:526)
      	at crypto.impl.AesAlgorithm.decrypt(AesAlgorithm.java:43)
      	at crypto.impl.DefaultCrypto.decrypt(DefaultCrypto.java:43)
      	at comdeepzero.isend.utils.EncryptionUtils.decrypt(EncryptionUtils.java:21)
      	at comdeepzero.isend.service.impl.CouponServiceImpl.couponSendReqBuild(CouponServiceImpl.java:203)
      	at comdeepzero.isend.service.impl.CouponServiceImpl.sendV2(CouponServiceImpl.java:113)
      	at comdeepzero.isend.controller.CouponController.sendV2(CouponController.java:46)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)   
      
    • sout输出的显示

    • log.info和log.error也都显示

    • e.prinkstack();也显示

  • 日志输出:

    • [2023-05-12 10:33:27,226 INFO  http-nio-10012-exec-2 o.s.w.s.DispatcherServlet] Initializing Servlet 'dispatcherServlet'
      [2023-05-12 10:33:27,227 INFO  http-nio-10012-exec-2 o.s.w.s.DispatcherServlet] Completed initialization in 1 ms
      [2023-05-12 10:33:27,409 INFO  http-nio-10012-exec-2 c.i.s.i.CouponServiceImpl] 日志info级别
      [2023-05-12 10:33:27,409 ERROR http-nio-10012-exec-2 c.i.s.i.CouponServiceImpl] 日志error级别
      [2023-05-12 10:33:27,916 INFO  http-nio-10012-exec-2 c.z.h.HikariDataSource] HikariPool-1 - Starting...
      [2023-05-12 10:33:28,387 INFO  http-nio-10012-exec-2 c.z.h.HikariDataSource] HikariPool-1 - Start completed.
      
    • 最上面两行是springmvc调用接口的dispatcherServlet的消息

    • 然后sout输出不显示

    • log.info和log.error的显示

现象总结:
  1. 日志输出的都会在控制台打印,这个是默认的
  2. 日志输出的可以选择进行在控制台打印,这个就是我们在yaml里面的配置的日志等级或者在logback里面配置的consoleAppender日志等级
  3. 待处理:这边的e.pringstack()为什么会在最后出现?(可能不管e.printStack写在哪里,都只会在最后输出)
ConsoleAppender

控制输入到控制台的格式

  • [%d %-5level %t] %msg%n

    • [2023-05-12 09:54:59,199 INFO  main] No active profile set, falling back to 1 default profile: "default"
      [2023-05-12 09:55:00,115 INFO  main] BeanFactory id=e8a86d2c-e386-34fbc-30ed8fd41d94
      
  • %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

    • 
      09:57:51.354 [main] INFO  comdeepzero.isend.ISendApplication - No active profile set, falling back to 1 default profile: "default"(for example: not eligible for auto-proxying)
      09:57:52.451 [main] INFO  o.s.cloud.context.scope.GenericScope - BeanFactory id=e8a86d2c-e386-34fb-a94c-30ed8fd41d94(for example: not eligible for auto-proxying)
      
      
RollingFileAppender

RollingFileAppender是logback中的一个Appender,它可以将日志输出到指定文件中,并且可以控制日志文件的大小和数量,达到日志自动轮转的效果

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/path/to/myapp.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>/path/to/myapp-%d{yyyy-MM-dd}.log</fileNamePattern>
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="FILE" />
  </root>
</configuration>

  • 在上面的例子中,RollingFileAppender被命名为FILE,
  • 指定了输出的文件路径为/path/to/myapp.log。
  • rollingPolicy指定了日志文件的滚动方式为按日期滚动,
  • fileNamePattern指定了日志文件名的格式,
  • maxHistory指定了保留的历史日志文件的数量。
  • encoder指定了日志格式。
  • 这个例子中,按日期滚动意味着每天会生成一个新的日志文件,例如myapp-2023-05-12.log。如果保留30天历史日志文件,那么将会有30个历史日志文件。如果日志文件大小超过了指定大小,也会触发日志滚动。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值