一 log4j.xml 配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <!-- 將日志信息輸出到控制台 --> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <!-- 設置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> <!--過濾器設置輸出的級別--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 設置日志輸出的最小級別 --> <param name="levelMin" value="WARN" /> <!-- 設置日志輸出的最大級別 --> <param name="levelMax" value="ERROR" /> <!-- 設置日志輸出的xxx,默認是false --> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <!-- 將日志信息輸出到文件,但是當文件的大小達到某個閾值的時候,日志文件會自動回滾 --> <appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender"> <!-- 設置日志信息輸出文件全路徑名 --> <param name="File" value="D:/log4j/RollingFileAppender.log" /> <!-- 設置是否在重新啟動服務時,在原有日志的基礎添加新日志 --> <param name="Append" value="true" /> <!-- 設置保存備份回滾日志的最大個數 --> <param name="MaxBackupIndex" value="10" /> <!-- 設置當日志文件達到此閾值的時候自動回滾,單位可以是KB,MB,GB,默認單位是KB --> <param name="MaxFileSize" value="10KB" /> <!-- 設置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> </appender> <!-- 將日志信息輸出到文件,可以配置多久產生一個新的日志信息文件 --> <appender name="DailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender"> <!-- 設置日志信息輸出文件全路徑名 --> <param name="File" value="D:/log4j/DailyRollingFileAppender.log" /> <!-- 設置日志每分鍾回滾一次,即產生一個新的日志文件 --> <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" /> <!-- 設置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> </appender> |
二 配置的其他說明
(1). 輸出方式appender一般有5種: |
三 配置全解
xml declaration and DTDxml配置文件的頭部包括兩個部分:xml聲明和DTD聲明。頭部的格式如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
log4j:configuration (root element)
appenderappender元素定義一個日志輸出目的地。
layoutlayout元素定義與某一個appender相聯系的日志格式化器。
loggerlogger元素定義一個日志輸出器。
rootroot元素定義根日志輸出器root logger。
levellevel元素定義logger對象的日志級別。
appender-refappender-ref元素引用一個appender元素的名字,為logger對象增加一個appender。
Param param元素在創建對象時為類的構造方法提供參數。它可以成為appender、layout、filter、errorHandler、level、categoryFactory和root等元素的子元素。
在xml文件中配置appender和layout創建不同的Appender對象或者不同的Layout對象要調用不同的構造方法。可以使用param子元素來設定不同的參數值。 創建ConsoleAppender對象ConsoleAppender的構造方法不接受其它的參數。
... ... ... ... <appender name="console.log" class="org.apache.log4j.ConsoleAppender"> <layout ... > ... ... </layout> </appender> ... ... ... ... 建FileAppender對象 可以為FileAppender類的構造方法傳遞兩個參數:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值為"true"和"false"(默認)。
... ... ... ... <appender name="file.log" class="org.apache.log4j.FileAppender"> <param name="File" value="/tmp/log.txt" /> <param name="Append" value="false" /> <layout ... > ... ... </layout> </appender> ... ... ... ... 建RollingFileAppender對象 除了File和Append以外,還可以為RollingFileAppender類的構造方法傳遞兩個參數:MaxBackupIndex備份日志文件的個數(默認是1個);MaxFileSize表示日志文件允許的最大字節數(默認是10M)。
... ... ... ... <appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="/tmp/rollingLog.txt" /> <param name="Append" value="false" /> <param name="MaxBackupIndex" value="2" /> <param name="MaxFileSize" value="1024" /> <layout ... > ... ... </layout> </appender> ... ... ... ... 創建PatternLayout對象可以為PatternLayout類的構造方法傳遞參數ConversionPattern。 <layout class="org.apache.log4j.PatternLayout> <param name="Conversion" value="%d [%t] %p - %m%n" /> </layout> |