2017-05-09 45 views
0

注:編輯(文件名/ packagenames改變)log4j2錯誤:通過搖籃產生運行罐子 - 的log4j:警告沒有附加目的地可以發現記錄

$>> java -jar build\lib\somePackageName.jar 
log4j:WARN No appenders could be found for logger (xxx.xxx.xxxx.xxxxx). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

驗證罐子有log4j2.xml:

$>> jar tf build\libs\somePackageName.jar | ack -i "log4j2" 
META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat 
META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat 
log4j2.xml 

搖籃任務與依賴關係構建的Jar:

sourceSets { 
    main { 
     resources { 
      srcDirs = ['src/resources'] 
     } 
    } 
} 

task someFatJar(type: Jar) { 
    manifest { 
     attributes (
      'Implementation-Title': 'xxxxx-xxxxxxxx', 
      'Implementation-Version': 0.x, 
      'Main-Class': 'xxx.xxxxx.xxxxx.xxxxxxxxxxxx' 
     ) 
    } 
    baseName = 'someJarName' 
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
    with jar 
} 

項目樹: SRC \主\ java的\ someJavaFile.java 的src \資源\ log4j2.xml

(以防萬一,我想下的主要動 「資源」 目錄)

幫助!

回答

0

看起來像log4j:WARN的錯誤消息是由舊的log4j 1.2實現生成的。您需要刪除該依賴關係並將其替換爲log4j-1.2-api適配器。這樣,您可以使用Log4j2作爲編碼到log4j 1.2 API的應用程序的日誌後端。

1

解決方案: 使用slf4j + log4j2依賴性是問題! (不使用slf4j-log4j-impl),使用一次可用的log4j2(log4j-slf4j-impl):

dependencies { 
    compile 'org.slf4j:slf4j-api:1.7.25' 
    compile 'org.apache.logging.log4j:log4j-api:2.8.2' 
    compile 'org.apache.logging.log4j:log4j-core:2.8.2' 
    compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.8.2' 
} 
相關問題