簡體   English   中英

找不到Log4j2.xml但是log4j2-test.xml是

[英]Log4j2.xml not found but log4j2-test.xml is

我正在從log4j 1.x升級到log4j 2,並將我的log4j.xml配置文件更新為新的log4j2.xml配置。 我正在跑maven,spring和mule。

運行測試maven構建時,不會拾取log4j2.xml文件。 但是,如果我重命名文件log4j2-test.xml,它將被拾取(例如,具有自定義PatternLayout的控制台記錄器在第二種情況下正常工作,但在第一種情況下使用默認配置)。

為什么log4j會選擇log4j2-test.xml而不是log4j2.xml?

由於log4j2-test.xml加載優先級高於log4j2.xml ,因此您的類路徑上的某個地方可能還有另一個log4j2配置文件,它覆蓋了log4j2.xml 通過在運行maven測試版本時執行以下代碼,嘗試查找獲取conf文件的位置:

for (String confFile : Arrays.asList("/log4j2-test.xml", "/log4j2.yaml", "/log4j2.yml", "/log4j2.json", "/log4j2.jsn", "/log4j2.xml")) {
    URL resource = YourTestClass.class.getResource(confFile);
    if (resource != null) {
        System.out.format("found %s in: %s\n", confFile, resource.getFile());
    }
}

暫無
暫無

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

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