首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Log4j 完整配置指南:Console 與 DailyRollingFileAppender 實戰詳解

     編輯:Java 綜合教學

Log4j 完整配置指南:Console 與 DailyRollingFileAppender 實戰詳解

Log4j 是 Java 生態中經典的日誌框架,靈活的配置機制支援多種輸出目的地與滾動策略。本文提供完整的 Java 代碼範例與 log4j.properties 配置詳解,幫助你快速掌握生產級日誌配置。

一、Java 代碼整合範例

public class Demo {
    // 取得記錄器,參數為當前類,便於追蹤日誌來源
    private static final Logger logger = Logger.getLogger(Demo.class);

    public static void main(String[] args) {
        getMessage();
    }

    private static void getMessage() {
        // 不同級別的日誌輸出,具體輸出位置與格式由配置檔決定
        logger.debug("This is debug message.");
        logger.info("This is a info message.");
        logger.warn("This is a warn message.");
        logger.error("This is a error message.............");
    }
}

二、核心配置檔解析 log4j.properties

### 輸出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### 輸出到檔案(每日滾動) ###
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.File=./logs/parseInfo.log
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.Encoding=UTF-8
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} - [%p]-[%l] %m%n

### 根記錄器:級別 INFO,同時輸出到 FILE 與 stdout ###
log4j.rootLogger=info,FILE,stdout

關鍵屬性說明

屬性說明
DatePattern滾動周期,如 '.'yyyy-MM-dd 表示每天生成一個檔案
Threshold該 Appender 的最低輸出級別,過濾低於此級別的日誌
ConversionPattern輸出格式,%d時間 %p級別 %c類名 %L行號 %m訊息 %n換行
Encoding檔案編碼,建議統一 UTF-8 避免中文亂碼

三、DatePattern 常用滾動模式對照表

模式滾動頻率檔案名範例
'.'yyyy-MM每月parseInfo.log.2024-01
'.'yyyy-ww每週parseInfo.log.2024-03
'.'yyyy-MM-dd每天parseInfo.log.2024-01-15
'.'yyyy-MM-dd-a每天兩次(AM/PM)parseInfo.log.2024-01-15-AM
'.'yyyy-MM-dd-HH每小時parseInfo.log.2024-01-15-14
'.'yyyy-MM-dd-HH-mm每分鐘parseInfo.log.2024-01-15-14-30

四、獨立每日滾動檔案配置範例

# 每天產生一個日誌檔案
log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.File=d:/logs/sbrd
log4j.appender.dailyFile.Append=true
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] [%t] (%F:%L) ->%m %n
log4j.appender.dailyFile.Threshold=INFO
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd'.log'
最佳實踐:生產環境建議同時啟用 Console(開發除錯)與 DailyRollingFileAppender(持久化),並根據業務量調整 Threshold 級別,避免過量 DEBUG 日誌佔用磁碟。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved