<RollingFile name="cnkiLogRollingFileError" fileName="${logbigdata.dir}/Log8080/error.log"
filePattern="${logbigdata.dir}/Log8080/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log" >
<Filters>
<!--warn/error/fatal級別的日志都輸出到error.log,-->
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>
<Policies>
<TimeBasedTriggeringPolicy modulate="true" interval="1"/>
<SizeBasedTriggeringPolicy size="500 MB"/>
</Policies>
</RollingFile>
比如原始日志配置如此,每日滾動,日志滿500M滾動。這樣在日志收集時,如果重啟tomcat或者java -jar 重新運行應用程序時,會造成info.log原有內容消失,從而丟失了部分日志內容。
append="true":這個並不能解決丟失的問題 默認也是true的
createOnDemand="true":這個配置能完美解決這個問題
默認為false,該appender按需創建文件,當日志事件通過所有的filters並且通過路由指向了該appender,該appender僅僅創建該文件