新公司由于日志文件量比较大,所以做了一些细分,对于logback.xml的配置还是下了一些功夫的,借助这个机会,我也深入的回顾和学习一下logback。
- springboot项目如何使用
引入jar包 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.3.0-alpha12</version> </dependency>
1.如图1,在创建记录器logger的同时,也会创建他的父记录器
2.如图2,再去创建图2的记录器的时候,只要创建org.example.APP2的记录器
3.level属性(可选)
name属性:记录器的名称
记录器的级别,允许的级别从低到高
additivity属性(可选):是否允许叠加打印日志, true或false
4. 根记录器是默认创建的,默认级别debug,Logger真正的类型:ch.qos.logback.classic.Logger
5.附加器:记录器会将输出日志的任务交给附加器完成,不同的附加器会将日志输出到不同的地方,比如控制台附加器、文件附加器、网络附加器等等。
常用的附加器
控制台附加器: ch.qos.logback.core.ConsoleAppender
文件附加器: ch.qos.logback.core.FileAppender
滚动文件附加器: ch.qos.logback.core.rolling.RollingFileAppender
附加器里面设置编码器<encoder>,编码器中设置日志的模板<pattern>
6. Pattern标签
%date %class %line %msg%n
%-50date{dd MMM yyyy;HH:mm:ss.SSS},20 oct. 2006;14:06:49.812
输出日志记录事件的日期
50表示日期占用50个长度, -表示空格添加在右边
%line,输出发出记录请求的行号
%class,日志请求的调用者的完全限定类名
%level,输出日志的级别
%msg ,输出日志信息
%logger,输出记录器的名称
1. 一个记录器是可以放置多个附加器的
<logger name = "org.example.App" level = "DEBUG" >
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</logger>
2.滚动策略
1. 基于时间的滚动策略
ch.qos.logback.core.rolling.TimeBasedRollingPolicy
2. 基于大小和时间的滚动策略
ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
<appender name="rollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--当前正在工作的日志文件名称-->
<file>myLog.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
<!--滚动策略,当到了时间以后,会把myLog.log重新命名为log_%d{yyyy-MM}.log 进行归档-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--每s归档一次,会按照年份进行特别的文件夹分类-->
<fileNamePattern>log_%d{yyyy/MM-dd hh:MM:ss}.log</fileNamePattern>
<!--归档文件最大保存的个数-->
<maxHistory>3</maxHistory>
<!--所有日志文件的大小不能超过5GB-->
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<!--是否会覆盖-->
<append>false</append>
</appender>