logback日志输出配置范例
logback日志输出配置范例
在wutool
中,提供了logback日志输出配置范例,实现日志文件大小限制、滚动覆盖策略、定时清理等功能。
关于wutool
wutool
是一个java代码片段收集库,针对特定场景提供轻量解决方案,只要按需选择代码片段拷贝使用即可。项目git地址https://github.com/handsomestWei/wutool
,欢迎star
logback配置说明
配置文件链接https://github.com/handsomestWei/wutool/tree/main/src/main/resources/logback.xml
日志配置热更新
修改logback.xml后无需重启服务,自动生效。需设定修改后配置生效的间隔。
<configuration scan="true" scanPeriod="60 seconds">
日志文件控制
文件大小限制、滚动覆盖策略、定时清理等。
<appender name="file_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!--每个文件的大小限制-->
<MaxFileSize>200MB</MaxFileSize>
<!--最多保留x天的文件,x天之前的将被清除-->
<MaxHistory>7</MaxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件,清理超过保留天数的,也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 DEBUG-->
<level>DEBUG</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
日志输出格式
附加了traceId,需要配合调用链id注入模块使用,可参考wutool
的traceId注入过滤器
<property name="log.pattern"
value="%d{HH:mm:ss.SSS} - [%thread] - [%X{traceId}] - %-5level %logger{20} - [%method,%line] - %msg%n"/>