【Java】全网最详细的logback日志配置说明(用于生产环境日志存储)
warning:
这篇文章距离上次修改已过180天,其中的内容可能已经有所变动。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义日志的根级别和输出方式 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender>
<!-- 每天滚动生成日志文件,保留30天的日志 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/myapp.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天滚动生成日志文件,保留30天的日志 -->
<fileNamePattern>logs/myapp.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<!-- 设置具体包或类的日志级别和使用的appender -->
<logger name="com.example.myapp" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<!-- 日志根级别设置 -->
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
这个配置文件定义了两个主要的appender:STDOUT和FILE。STDOUT用于在控制台输出日志,FILE用于将日志滚动保存到文件中。对于具体的日志记录器(logger),我们设置了com.example.myapp包下的日志级别为DEBUG,并且指定了两个appender。这确保了对该包进行日志记录时会同时在控制台和文件中记录DEBUG及以上级别的日志。此外,根级别(root level)被设置为ERROR,这意味着只有错误级别以上的日志会被记录,这在生产环境中可以帮助节省磁盘空间并提高性能。
评论已关闭