log4j2.x日誌按日期分隔

業餘草發表於2015-10-10
log4j2.x的日誌在效能上有很大的提升,也被標識為下一代的非同步日誌管理系統。
專案組在使用的時候,發現日誌沒有按照日期進行檔案分割。於是親自上log4j2.x的官網檢視了部分文件。
按如下配置即可實現日誌按日期進行分割:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
  	<!-- 配置日誌輸出檔名字     追加讀寫 -->  
    <RollingFile name="taoge" fileName="logs/taoge.log" filePattern="logs/taoge.%d{yyyy-MM-dd}.log" append="true">
    	<!-- 輸出格式 -->  
        <PatternLayout pattern="[%l] [%t] [%-4r] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%p] \: %m%n"/>
        <!-- 設定策略 -->
        <Policies>  
        	<!-- 基於時間的觸發策略。該策略主要是完成周期性的log檔案封存工作。有兩個引數:
				interval,integer型,指定兩次封存動作之間的時間間隔。單位:以日誌的命名精度來確定單位,
					比如yyyy-MM-dd-HH 單位為小時,yyyy-MM-dd-HH-mm 單位為分鐘
				modulate,boolean型,說明是否對封存時間進行調製。若modulate=true,
					則封存時間將以0點為邊界進行偏移計算。比如,modulate=true,interval=4hours,
					那麼假設上次封存日誌的時間為03:00,則下次封存日誌的時間為04:00,
					之後的封存時間依次為08:00,12:00,16:00
			 -->
            <TimeBasedTriggeringPolicy interval="1" modulate="true" />  
        </Policies>
    </RollingFile>
  	<!-- 標準輸出 -->
    <Console name="STDOUT" target="SYSTEM_OUT">
      <!-- 輸出格式 -->
      <PatternLayout pattern="[%l] [%t] [%-4r] [%d{yyyy-MM-dd HH:mm:ss,SSS}] [%p] \: %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <!-- 配置記錄器級別 -->
    <Root level="debug">
    	<AppenderRef ref="taoge"/>
      	<!-- 輸出設定 -->
      	<AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>
</Configuration>
歡迎大家關注我的部落格,如有疑問,請加qq群:454796847、135430763 共同進步!

相關文章