要寫日誌資訊到一個檔中,必須使用org.apache.log4j.FileAppender。有以下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 - 示例程式使用上面的配置。
