要寫紀錄檔資訊到一個檔案中,必須使用org.apache.log4j.FileAppender。有以下FileAppender的組態引數:
屬性 | 描述 |
---|---|
immediateFlush | 標誌的預設設定為true,這意味著輸出流的檔案被重新整理,在每個追加操作 |
encoding | 它可以使用任何字元編碼。預設情況下是特定於平台的編碼方案 |
threshold | 這個 appender 閾值級別 |
Filename | 紀錄檔檔案的名稱 |
fileAppend | 預設設定為true,這意味著記錄的資訊被附加到同一檔案的末尾 |
bufferedIO | 此標誌表示是否需要寫入快取啟用。預設設定為false |
bufferSize | 如果 bufferedI/O 啟用,這表示緩衝區的大小,預設設定為8KB |
下面是一個範例組態檔案 log4j.properties 的 FileAppender。
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, overwrite log4j.appender.FILE.Append=false # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果喜歡相當於上述log4j.properties檔案的XML組態檔案,在這裡是xml組態檔案的內容:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender name="FILE" class="org.apache.log4j.FileAppender"> <param name="file" value="${log}/log.out"/> <param name="immediateFlush" value="true"/> <param name="threshold" value="debug"/> <param name="append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <param name="conversionPattern" value="%m%n"/> </layout> </appender> <logger name="log4j.rootLogger" additivity="false"> <level value="DEBUG"/> <appender-ref ref="FILE"/> </logger> </log4j:configuration>
可以嘗試在 log4j - 範例程式 使用上面的組態。
當想要寫紀錄檔資訊轉化多個檔案要求一樣,例如,如果檔案大小達到一定的閾值等。
寫紀錄檔記錄資訊分成多個檔案,必須擴充套件FileAppender類,並繼承其所有屬性useorg.apache.log4j.RollingFileAppender類。
有以下除了已如上所述為 FileAppender 可組態引數:
屬性 | 描述 |
---|---|
maxFileSize | 上述的檔案的回滾臨界尺寸。預設值是10MB |
maxBackupIndex | 此屬性表示要建立的備份檔案的數量。預設值是1 |
下面是一個範例組態檔案log4j.properties的RollingFileAppender進行
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.RollingFileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, should not overwrite log4j.appender.FILE.Append=true # Set the maximum file size before rollover log4j.appender.FILE.MaxFileSize=5KB # Set the the backup index log4j.appender.FILE.MaxBackupIndex=2 # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果想有一個XML組態檔案,可以生成中提到的初始段,並新增相關的 RollingFileAppender 進行唯一額外的引數。
此範例組態說明每個紀錄檔檔案的最大允許大小為5MB。當超過最大尺寸,新的紀錄檔檔案將被建立並因為maxBackupIndex被定義為2,當第二個紀錄檔檔案達到最大值,第一個紀錄檔檔案將被刪除,之後所有的紀錄檔資訊將被回滾到第一個紀錄檔檔案。
可以嘗試 log4j - 範例程式使用上面的組態。
當想生成每一天的紀錄檔檔案,以保持紀錄檔記錄資訊的良好記錄。
紀錄檔記錄資訊納入日常的基礎檔案,就必須它擴充套件FileAppender類,並繼承其所有屬性useorg.apache.log4j.DailyRollingFileAppender類。
有除了已如上所述為 FileAppender 只有一個重要的下列組態引數:
Property | 描述 |
---|---|
DatePattern | 這表示在捲動的檔案,並按命名慣例來執行。預設情況下,在每天午夜捲動 |
DatePattern控制使用下列捲動的時間表方式之一:
DatePattern | 描述 |
---|---|
'.' yyyy-MM | 捲動在每個月的結束和下一個月初 |
'.' yyyy-MM-dd | 這是預設值,每天午夜捲動 |
'.' yyyy-MM-dd-a | 捲動每一天的午夜和中午 |
'.' yyyy-MM-dd-HH | 捲動在每一個小時 |
'.' yyyy-MM-dd-HH-mm | 捲動在每一個分鐘 |
'.' yyyy-ww | 捲動每個星期取決於區域設定時的第一天 |
下面是一個範例組態檔案log4j.properties生成紀錄檔檔案卷動的在每天午夜。
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender # Set the name of the file log4j.appender.FILE.File=${log}/log.out # Set the immediate flush to true (default) log4j.appender.FILE.ImmediateFlush=true # Set the threshold to debug mode log4j.appender.FILE.Threshold=debug # Set the append to false, should not overwrite log4j.appender.FILE.Append=true # Set the DatePattern log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
如果想使用XML組態檔案,可以生成中提到的初始段,並新增相關DailyRollingFileAppender 唯一的額外引數和資料。
可以嘗試在 log4j - 範例程式使用上面的組態。