log4j日誌列印
阿新 • • 發佈:2018-11-05
最近在分析專案響應時延時,使用了很多列印日誌的技巧,下面總結一下。
1、列印總的日誌。
總日誌是說,在系統出現任何異常或錯誤情況,都將異常列印到固定檔案中。實現方式:
1、實現類中,新增日誌物件
private static final Logger LOGGER = LoggerFactory.getLogger(SpeechManagerImpl.class);
getLogger裡面填類名。
2、log4j.xml里加入這一段
<appender name="mainlog" class="org.apache.log4j.DailyRollingFileAppender"> <param name="Encoding" value="UTF-8" /> <param name="File" value="/home/cxb/logs/smartchome.log" /> <param name="DatePattern" value="'-'yyyy-MM-dd" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p [%t] (%F\:%L) - %m%n" /> </layout> </appender><root> <priority value="ERROR" /> <appender-ref ref="mainlog" /> <appender-ref ref="console" /> </root>
主要日誌級別設定為ERROR,說明只打error級別日誌。這時,java程式碼中,只有error或更嚴重的才會打印出。
2、列印模組化日誌。
這個也是比較常用的,用於將關鍵模組的日誌單獨列印到檔案中。實現方式:
1、實現類中,新增日誌物件
private static final Logger log = LoggerFactory.getLogger("nlptransaction");
2、log4j中加入以下一段
<category additivity="false" name="nlptransaction"> <level value="INFO"/> <appender-ref ref="nlptranslog"/> </category><appender name="nlptranslog" class="org.apache.log4j.DailyRollingFileAppender"> <param name="Encoding" value="UTF-8" /> <param name="File" value="/home/cxb/logs/nlptrans.log" /> <param name="DatePattern" value="'-'yyyy-MM-dd" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH\:mm\:ss,SSS} %5p [%t] (%F\:%L) - %m%n"/> </layout> </appender>
這樣,在需要單獨列印的地方,就實現了單獨的日誌列印。