Logback例子
程序员文章站
2022-03-05 08:11:35
...
生产环境有个web项目,每天会生成一个text.log文件来记录日志,这个文件大小为40G左右。如此大的文件,排查问题变得很困难。于是将这个文件以4G大小进行分割,实时输出为text.log文件,当文件大于4G时,文件分为text.log和text-yyyy-mm-dd-i.log多个文件(i从0开始,依次递增)。配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Reference Manual http://logback.qos.ch/manual/index.html -->
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="utf-8">
<!-- encoder 可以指定字符集,对于中文输出有意义 -->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level] [%thread] [%logger:%L] - %msg%n</pattern>
</encoder>
</appender>
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<!-- 可让每天产生多个日志文件,自动回滚 -->
<File>../logs/text.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>../logs/text-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>4096MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder charset="utf-8">
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] |-%-5level [%thread] [%logger:%L] - %msg%n</pattern>
</encoder>
</appender>
<!-- 输出到控制台和文件,可定义更多的 Appender -->
<root level="info">
<!--<appender-ref ref="stdout"/>-->
<appender-ref ref="RollingFile"/>
</root>
<!-- 下面配置一些第三方包的日志过滤级别,用于避免刷屏 -->
<logger name="org.hibernate" level="WARN"/>
<logger name="org.springframework" level="WARN"/>
<logger name="com.opensymphony" level="WARN"/>
<logger name="org.apache" level="WARN"/>
<logger name="org.apache.shiro" level="WARN"/>
</configuration>
参考文章:http://czj4451.iteye.com/blog/1975937
https://blog.csdn.net/itjavaer/article/details/80277599