JAVA log4j2日誌配置檔案
阿新 • • 發佈:2018-12-14
log4j2日誌配置檔案
<?xml version="1.0" encoding="UTF-8"?> <configuration status="WARN"> <properties> <property name="LOG_HOME">logs</property> <property name="FILE_NAME">API</property> </properties> <!-- ${sys:catalina.home}指當前tomcat根目錄 --> <appenders> <!-- 日誌輸出到控制檯 --> <Console name="Console" target="SYSTEM_OUT"> <!--控制檯只輸出level及以上級別的資訊(onMatch),其他的直接拒絕(onMismatch)--> <!--level:TRACE < DEBUG < INFO < WARN < ERROR < FATAL--> <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} [%t] %-5level %logger{36} - %msg%n"/> </Console> <!-- 迴圈日誌檔案:日誌檔案大於閥值的時候,就開始寫一個新的日誌檔案 這個會打印出所有的資訊,每次大小超過size,則這size大小的日誌會自動存入按年份-月份建立的資料夾下面並進行壓縮,作為存檔 fileName : 指定當前日誌檔案的位置和檔名稱 filePattern : 指定當發生Rolling時,檔案的轉移和重新命名規則 SizeBasedTriggeringPolicy : 指定當檔案體積大於size指定的值時,觸發Rolling DefaultRolloverStrategy : 指定每天最多儲存的檔案個數,預設為7 TimeBasedTriggeringPolicy : 這個配置需要和filePattern結合使用 注意filePattern中配置的檔案重新命名規則是${FILE_NAME}_%d{yyyy-MM-dd}_%i,最小的時間粒度是dd,即天, TimeBasedTriggeringPolicy指定的size是1,結合起來就是每1天生成一個新檔案 onMatch/onMismatch: ACCEPT:接受匹配,DENY:禁止匹配,NEUTRAL:不做處理,讓後續程式碼做處理。 --> <!-- 輸入INFO級別的日誌到檔案 --> <RollingRandomAccessFile name="INFO" fileName="${sys:catalina.home}/logs/${FILE_NAME}-info.log" filePattern="${sys:catalina.home}/log/${FILE_NAME}-info_%d{yyyy-MM-dd}_%i.log.gz"> <Filters> <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1"/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <!-- 每天最大允許存在壓縮的檔案數,超過了這個數量,前面的檔案會自己清除,如果不寫,預設數為7 --> <DefaultRolloverStrategy max="100"/> </RollingRandomAccessFile> <!--輸入ERROR級別的日誌到檔案--> <RollingRandomAccessFile name="ERROR" fileName="${sys:catalina.home}/logs/${FILE_NAME}-error.log" filePattern="${sys:catalina.home}/log/${FILE_NAME}-error_%d{yyyy-MM-dd}_%i.log.gz"> <Filters> <ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1"/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <DefaultRolloverStrategy max="100"/> </RollingRandomAccessFile> <!--輸入FATAL級別的日誌到檔案--> <RollingRandomAccessFile name="FATAL" fileName="${sys:catalina.home}/logs/${FILE_NAME}-fatal.log" filePattern="${sys:catalina.home}/log/${FILE_NAME}-fatal_%d{yyyy-MM-dd}_%i.log.gz"> <Filters> <ThresholdFilter level="FATAL" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1"/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <DefaultRolloverStrategy max="100"/> </RollingRandomAccessFile> <RollingRandomAccessFile name="REQS" fileName="${sys:catalina.home}/logs/${FILE_NAME}-reqs.log" filePattern="${sys:catalina.home}/log/${FILE_NAME}-reqs_%d{yyyy-MM-dd}_%i.log.gz"> <Filters> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS z} %-5level %class{36} %L %M - %msg%xEx%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1"/> <SizeBasedTriggeringPolicy size="100MB"/> </Policies> <!-- 每天最大允許存在壓縮的檔案數,超過了這個數量,前面的檔案會自己清除,如果不寫,預設數為7 --> <DefaultRolloverStrategy max="100"/> </RollingRandomAccessFile> </appenders> <loggers> <logger name="com.iotlead.hardware.api.business.impls.ApiLogService" additivity="false"> <priority value ="info"/> <appender-ref ref="Console" /> <appender-ref ref="REQS" /> </logger> <!--日誌等級,部署時一定要改成ERROR 等級:TRACE < DEBUG < INFO < WARN < ERROR < FATAL--> <root level="DEBUG"> <!-- 輸入日誌到控制檯 --> <appender-ref ref="Console"/> <!-- 輸入日誌到檔案 --> <!--<appender-ref ref="INFO"/>--> <!-- 輸入錯誤日誌到檔案 --> <!--<appender-ref ref="ERROR"/>--> <!-- 輸入系統錯誤日誌到檔案 --> <!--<appender-ref ref="FATAL"/>--> </root> </loggers> </configuration>