2017-02-17 62 views
1

有人曾試圖使用默認內置的slf4j與Tapestry 5.4中的log4j2嗎? 我可以這樣使用log4j2:Tapestry 5 + log4j2

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 
...  
private Logger logger = LogManager.getLogger(this.getClass()); 

但我不能這樣使用:

import org.apache.tapestry5.ioc.annotations.Inject; 
import org.slf4j.Logger; 
... 
@Inject private Logger logger; 

我不明白爲什麼,因爲我覺得,我加入到我的gradle這個腳本所需的 庫:

runtime group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-web', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.8' 

有沒有人有任何想法,爲什麼它不適合我?

在此先感謝!

+0

有什麼錯誤?你怎麼知道它不起作用? –

+1

嗨! 感謝您的回覆。問題是在log4j2.xml中設置了最低級別DEBUG,但是如果使用注入版本,只能登錄info級別,但是如果我使用這個'private Logger logger = LogManager.getLogger(this.getClass());'然後DEBUG級別開啓。 無論如何,我的同事幫助我,我要回答解決方案。 :) – LakiGeri

回答

1

我被扶出來,我發現了一個解決方案,我不得不改變gradle這個文件到這一點:

compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.8'