Logback 配置文件解析及优化
<logger name='org.hibernate.SQL' level='debug'/>
<!--控制台输出 -->
<appender name='consoleLog' class='ch.qos.logback.core.ConsoleAppender'>
<encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<!-- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}) - %highlight(%msg) %n</pattern>-->
<pattern>${log.pattern}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!-- 这也是用来保存输出所有级别的日志 -->
<appender name='fileInfoLog' class='ch.qos.logback.core.rolling.RollingFileAppender'>
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
<!-- 滚动策略,它根据时间来制定滚动策略.既负责滚动也负责触发滚动 -->
<rollingPolicy class='ch.qos.logback.core.rolling.TimeBasedRollingPolicy'>
<!-- 输出路径 -->
<fileNamePattern>${LOG_HOME}/info/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
<!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6,
则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<maxHistory>${maxHistory}</maxHistory>
<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
<timeBasedFileNamingAndTriggeringPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'>
<fileNamePattern>${LOG_HOME}/info/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class='ch.qos.logback.classic.PatternLayout'>
<pattern>%date %level [%thread] %logger [%file:%line] -%msg%n</pattern>
</layout>
</appender>
<!-- 只用保存输出error级别的日志 -->
<appender name='fileErrorLog' class='ch.qos.logback.core.rolling.RollingFileAppender'>
<rollingPolicy class='ch.qos.logback.core.rolling.TimeBasedRollingPolicy'>
<fileNamePattern>${LOG_HOME}/error/${LOG_NAME}.%d{yyyy-MM-dd}.%i.out</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>${maxHistory}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class='ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy'>
<maxFileSize>${log.max.size}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class='ch.qos.logback.classic.PatternLayout'>
<pattern>%date %level [%thread] %logger [%file:%line] -%msg%n</pattern>
</layout>
<!-- 下面为配置只输出error级别的日志 -->
<filter class='ch.qos.logback.classic.filter.LevelFilter'>
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- root将级别为${log.root.level}及大于${log.root.level}的日志信息交给已经配置好的名为“Console”的appender处理,“Console”appender将信息打印到Console,其它同理 -->
<root level='${log.root.level}'>
<appender-ref ref='consoleLog'/> <!-- 标识这个appender将会添加到这个logger -->
<appender-ref ref='fileInfoLog'/>
<appender-ref ref='fileErrorLog'/>
</root>
原文地址: https://www.cveoy.top/t/topic/qmwD 著作权归作者所有。请勿转载和采集!