log4j日誌記錄到文件

要寫日誌信息到一個文件中,必須使用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配置文件的內容:

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 - 示例程序使用上面的配置。