[英]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加載配置。
- 如果未設置系統屬性,則屬性ConfigurationFactory將在類路徑中查找log4j2-test.properties。
- 如果找不到此類文件,則YAML ConfigurationFactory將在類路徑中查找log4j2-test.yaml或log4j2-test.yml。
- 如果找不到此類文件,則JSON ConfigurationFactory將在類路徑中查找log4j2-test.json或log4j2-test.jsn。
- 如果找不到這樣的文件,XML ConfigurationFactory將在類路徑中查找log4j2-test.xml。
- 如果找不到測試文件,則屬性ConfigurationFactory將在類路徑上查找log4j2.properties。
- 如果找不到屬性文件,則YAML ConfigurationFactory將在類路徑上查找log4j2.yaml或log4j2.yml。
- 如果無法找到YAML文件,則JSON ConfigurationFactory將在類路徑上查找log4j2.json或log4j2.jsn。
- 如果無法找到JSON文件,則XML ConfigurationFactory將嘗試在類路徑上找到log4j2.xml。
- 如果找不到配置文件,將使用DefaultConfiguration。 這將導致日志記錄輸出進入控制台。
您可以在此處找到有關log4j2配置的所有文檔: https ://logging.apache.org/log4j/2.x/manual/configuration.html
感謝DB指出正確的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.