<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{MMM dd yyyy HH:mm:ss,SSS} %-5p %c - %m%n" />
</layout>
</appender>
<!-- 正常的日記文件INFO WARN -->
<appender name="info" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.base}/logs/jcms_info" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MMM dd yyyy} [%t][%c] %p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<!-- 出錯的日記文件ERROR FATAL -->
<appender name="error" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.base}/log/jcms_error" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MMM dd yyyy} [%t][%c] %p - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<category name="net.carefx" additivity="false">
<priority value="DEBUG" />
<appender-ref ref="console" />
</category>
<category name="org.springframework" additivity="false">
<priority value="ERROR" />
<appender-ref ref="console" />
</category>
<category name="java.sql" additivity="false">
<priority value="ERROR" />
<appender-ref ref="console" />
</category>
<logger name="java.sql.Connection">
<level value="debug" />
</logger>
<logger name="java.sql.Statement">
<level value="debug" />
</logger>
<logger name="java.sql.PreparedStatement">
<level value="debug" />
</logger>
<logger name="java.sql.ResultSet">
<level value="debug" />
</logger>
<root>
<!-- <priority value="ERROR" /> -->
<priority value="info" />
<appender-ref ref="console" />
<appender-ref ref="info" />
<appender-ref ref="error" />
</root>
</log4j:configuration>
(1). 輸出方式appender一般有5種:
org.apache.log4j.RollingFileAppender(滾動文件,自動記錄最新日誌)
org.apache.log4j.ConsoleAppender (控制檯)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天產生一個日誌文件)
org.apache.log4j.WriterAppender (將日誌信息以流格式發送到任意指定的地方)
(2). 日記記錄的優先級priority,優先級由高到低分爲
OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。
Log4j建議只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG這五個級別。
(3). 格式說明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 輸出產生該日誌事件的線程名