簡體   English   中英

log4j V2中log4j.properties的內容並格式化記錄器輸出(例如添加時間戳)

[英]the content of log4j.properties in log4j V2 and formating the logger output (for instance adding time stamp)

我正在做一個Java項目,我已經將Log4j API Version 2集成到了我的程序中(很顯然是第一次,而且我不知道它是如何工作的,因此,如果我的問題似乎很簡單,請不要怪我)。 我的log4j.properties的內容如下:

log4j.rootLogger=DEBUG,SAWAN
log4j.appender.SAWAN=org.apache.log4j.ConsoleAppender
log4j.appender.SAWAN.layout=org.apache.log4j.SimpleLayout

然后將log4j庫導入到我的類中,出於調試目的,我編寫了以下內容,並顯示了輸出

    //My Code
    PropertyConfigurator.configure("log4j.properties");
    logger.debug("Sample debug message");
    logger.info("Sample info message");
    logger.warn("Sample warn message");
    logger.error("Sample error message");
    logger.fatal("Sample fatal message");


    //Output 
    DEBUG - Sample debug message
    INFO - Sample info message
    WARN - Sample warn message
    ERROR - Sample error message
    FATAL - Sample fatal message

這意味着log4j運行正常。 我怎么想更改輸出的格式並為其添加時間戳。 根據我對本網站提出的其他問題的研究,並參考https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html,我知道我需要使用類似以下內容:

[%t] %-5p %c %x - %m%n

但是將其添加到log4j.properties后,我遇到了錯誤。我的問題是,應在哪里為日志輸出指定輸出格式。

這也是我導入的庫:

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.PatternLayout;

值得一提的是,我嘗試將以下內容添加到我的log4j.properties中: log4j.appender.ConsoleAppender.layout.ConversionPattern=[%-5p] %d %c - %m%n

但是我不斷收到錯誤消息,說我的log4j.properties出了點問題,當我刪除它時不是這種情況,它可以正常工作:)

您需要在類路徑上有一個名為log4j2.properties的文件,以自動進行拾取。

Log4j2中的文檔:

Log4j能夠在初始化期間自動進行自我配置。 Log4j啟動時,它將找到所有ConfigurationFactory插件,並按從高到低的加權順序排列它們。 交付時,Log4j包含四個ConfigurationFactory實現:一個用於JSON,一個用於YAML,一個用於屬性,以及一個用於XML。

Log4j將檢查“ log4j.configurationFile”系統屬性,如果已設置,將嘗試使用與文件擴展名匹配的ConfigurationFactory加載配置。

  1. 如果未設置系統屬性,則屬性ConfigurationFactory將在類路徑中查找log4j2-test.properties。
  2. 如果找不到此類文件,則YAML ConfigurationFactory將在類路徑中查找log4j2-test.yaml或log4j2-test.yml。
  3. 如果找不到此類文件,則JSON ConfigurationFactory將在類路徑中查找log4j2-test.json或log4j2-test.jsn。
  4. 如果找不到這樣的文件,XML ConfigurationFactory將在類路徑中查找log4j2-test.xml。
  5. 如果找不到測試文件,則屬性ConfigurationFactory將在類路徑上查找log4j2.properties。
  6. 如果找不到屬性文件,則YAML ConfigurationFactory將在類路徑上查找log4j2.yaml或log4j2.yml。
  7. 如果無法找到YAML文件,則JSON ConfigurationFactory將在類路徑上查找log4j2.json或log4j2.jsn。
  8. 如果無法找到JSON文件,則XML ConfigurationFactory將嘗試在類路徑上找到log4j2.xml。
  9. 如果找不到配置文件,將使用DefaultConfiguration。 這將導致日志記錄輸出進入控制台。

您可以在此處找到有關log4j2配置的所有文檔: https ://logging.apache.org/log4j/2.x/manual/configuration.html

感謝DB指出正確的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM