1. 程式人生 > >log4j日誌列印

log4j日誌列印

    最近在分析專案響應時延時,使用了很多列印日誌的技巧,下面總結一下。

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>

                  這樣,在需要單獨列印的地方,就實現了單獨的日誌列印。