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"/>