閱讀113 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Log4j.xml useful Template

以前對Log4j沒有係統的總結過,剛才花了點時間,總結了一個模板,應該符合大部分的應用了。

 

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="https://jakarta.apache.org/log4j/" debug="false"> <!-- ============================== --> <!-- Append messages to the console --> <!-- ============================== --> <!--輸出方式:輸出到控製台--> <appender name="myConsole" > <!-- 設置通道名稱:console和輸出方式:org.apache.log4j.RollingFileAppender 其中輸出方式appender有5種,分別為 org.apache.log4j.ConsoleAppender (控製台) org.apache.log4j.FileAppender (文件) org.apache.log4j.DailyRollingFileAppender (每天產生一個日誌文件) org.apache.log4j.WriterAppender (將日誌信息以流格式發送到任意指定的地方)--> <param name="Target" value="System.out"/> <param name="Threshold" value="INFO"/> <!--Threshold是個全局的過濾器,他將把低於所設置的level的信息過濾不顯示出來--> <!--level:是日記記錄的優先級,優先級由高到低分為 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。 Log4j建議隻使用FATAL ,ERROR ,WARN ,INFO ,DEBUG這四個級別。--> <layout > <!-- 設置日誌輸出的格式--> <!-- 參數都以%開始後麵不同的參數代表不同的格式化信息(參數按字母表順序列出): %c 輸出所屬類的全名,可在修改為 %d{Num} ,Num類名輸出的圍 如:"org.apache.elathen.ClassName", %C{2}將輸出elathen.ClassName %d 輸出日誌時間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss} %l 輸出日誌事件發生位置,包括類目名、發生線程,在代碼中的行數 %n 換行符 %m 輸出代碼指定信息,如info(“message”),輸出message %p 輸出優先級,即 FATAL ,ERROR 等 %r 輸出從啟動到顯示該log信息所耗費的毫秒數 %t 輸出產生該日誌事件的線程名--> <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> </layout> </appender> <!--輸出方式是:每天一個日誌文件--> <!-- A time/date based rolling appender --> <appender name="myFile" > <!--設置通道名稱是:file,輸出方式DailyRollingFileAppender--> <param name="File" value="server.log"/> <!--日誌文件路徑和文件名稱 --> <param name="Append" value="true"/> <!-- 設置是否在重新啟動服務時,在原有日誌的基礎添加新日誌 --> <!-- Rollover at midnight each day --> <param name="DatePattern" value="’.’yyyy-MM-dd"/> <!-- Rollover at the top of each hour <param name="DatePattern" value="’.’yyyy-MM-dd-HH"/> --> <layout > <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> --> </layout> </appender> <appender name="ERROR_LOG" > <errorHandler /> <param name="File" value="Error.log"/> <param name="Append" value="true"/> <param name="Threshold" value="INFO"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout > <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> <!-- 指定logger的設置,additivity指示是否疊加輸出log,如果是false, 在DsErrorLog logger中日誌不會被其它logger滿足條件的logger(比如root) 輸出 --> <!-- 將名稱為DSErrorLog的logger,輸出到“EEROR_LOG”的appender 所謂logger的名字也就是,在定義Logger時,構造函數的參數 Logger log = Logger.getLogger("DSErrorLog"); --> <logger name="DSErrorLog" additivity="false"> <level value="DEBUG"/> <appender-ref ref="ERROR_LOG"/> </logger> <!--輸出指定類包中的日誌,比如想輸出 Hibernate運行中生成的SQL語句,可作如下設置 --> <category name="org.hibernate.SQL"> <priority value="DEBUG"/> <!-- 如果指定一個appender,這些log將被輸出到指定的appender 如:<appender-ref ref="myFile"/> 否則將作用於所有的appender --> </category> <!-- 根logger的設置--> <root> <priority value ="INFO"/> <appender-ref ref="myConsole"/> <appender-ref ref="myFile"/> </root> </log4j:configuration>

最後更新:2017-04-02 00:06:42

  上一篇:go javascript瀏覽器兼容性(不斷更新中)
  下一篇:go 元素的ID慎用length