
- log4j 教程
- log4j - 首頁
- log4j - 概述
- log4j - 安裝
- log4j - 架構
- log4j - 配置
- log4j - 示例程式
- log4j - 日誌記錄方法
- log4j - 日誌級別
- log4j - 日誌格式
- log4j - 檔案日誌記錄
- log4j - 資料庫日誌記錄
- log4j 有用資源
- log4j - 常見問題解答
- log4j - 快速指南
- log4j - 有用資源
- log4j - 討論
log4j - 檔案日誌記錄
要將日誌資訊寫入檔案,您必須使用org.apache.log4j.FileAppender。
FileAppender 配置
FileAppender 具有以下可配置引數:
屬性 | 描述 |
---|---|
immediateFlush | 此標誌預設設定為 true,這意味著輸出流在每次追加操作時都會重新整理到檔案。 |
encoding | 可以使用任何字元編碼。預設情況下,它是平臺特定的編碼方案。 |
threshold | 此附加程式的閾值級別。 |
Filename | 日誌檔案的名稱。 |
fileAppend | 此標誌預設設定為 true,這意味著日誌資訊將追加到同一檔案的末尾。 |
bufferedIO | 此標誌指示是否需要啟用緩衝寫入。預設情況下,它設定為 false。 |
bufferSize | 如果啟用了緩衝 I/O,則表示緩衝區大小。預設情況下,它設定為 8kb。 |
以下是 FileAppender 的示例配置檔案log4j.properties:
# 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 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類並繼承其所有屬性的org.apache.log4j.RollingFileAppender類。
除了上面提到的 FileAppender 的可配置引數外,我們還有以下可配置引數:
屬性 | 描述 |
---|---|
maxFileSize | 這是檔案的臨界大小,超過此大小檔案將被滾動。預設值為 10 MB。 |
maxBackupIndex | 此屬性表示要建立的備份檔案數量。預設值為 1。 |
以下是 RollingFileAppender 的示例配置檔案log4j.properties。
# 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=5MB # 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 配置檔案,您可以生成與初始部分中提到的相同的 XML 檔案,並僅新增與RollingFileAppender相關的附加引數。
此示例配置演示了每個日誌檔案的最大允許大小為 5 MB。超過最大大小時,將建立一個新的日誌檔案。由於maxBackupIndex定義為 2,一旦第二個日誌檔案達到最大大小,第一個日誌檔案將被擦除,此後,所有日誌資訊將回滾到第一個日誌檔案。
您可以使用上述配置嘗試log4j - 示例程式。
每日日誌檔案生成
可能需要每天生成日誌檔案,以便保持日誌資訊的清晰記錄。
要每天將日誌資訊寫入檔案,您必須使用擴充套件FileAppender類並繼承其所有屬性的org.apache.log4j.DailyRollingFileAppender類。
除了上面提到的 FileAppender 的可配置引數外,只有一個重要的可配置引數:
屬性 | 描述 |
---|---|
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 配置檔案,您可以生成與初始部分中提到的相同的 XML 檔案,並僅新增與DailyRollingFileAppender相關的附加引數。
您可以使用上述配置嘗試log4j - 示例程式。