2011-07-22 30 views
4

我想記錄我的Web應用程序的一些行爲,它也實現了休眠,彈簧等。當我試圖從apache實現log4j記錄器時,我遇到了一些麻煩。指定只有一些軟件包有調試輸出

當我打開記錄器時,它也在調試我不想要的hibernate和spring。我試圖配置屬性文件來指定我的項目的包,但它不起作用。

這裏是我的屬性文件的代碼:

log4j.rootCategory=ERROR, O 
log4j.category.com.my.package= DEBUG, FILE, O 
log4j.appender.FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.FILE.File=log/logger.log 
log4j.appender.O=org.apache.log4j.ConsoleAppender 
.... and some layout 

它的工作原理,當我轉rootCategory = DEBUG但它也是調試Hibernate和Spring作爲我說。

+0

這可能有助於與休眠:http://stackoverflow.com/questions/2077377/cant-stop-hibernate-from-writing-log-to-console-log4j-properties-is-ok –

+0

你如何創建你的Logger對象? –

+0

@ kmb385你的鏈接可以幫助我很多。謝謝 – Smolda

回答

11

是的,你必須specfiy每包的日誌級別:

log4j.logger.org.hibernate=info 
log4j.logger.org.springframework=info 
log4j.logger.com.yourapplication=debug 

需要注意的是,你應該從類別(過時)來記錄儀進行切換。所以log4j.rootLogger=...

+1

爲什麼不只是爲root logger指定'ERROR',然後爲需要調試的特定包指定'DEBUG'? –

+0

@Kevin我不知道爲什麼,但它不適合我。 – Smolda

2

你需要知道,實際上寫的東西記錄儀的名字......最簡單的方法是設置根類錯誤:

log4j.rootCategory=ERROR, 0 

然後設置水平,爲您的日誌因此:

log4j.com.your.package=DEBUG... 

設置rootCategoryDEBUG會變成一切DEBUG,除非專門配置否則記錄器。

B.T.W,這不是一個休眠問題,這與你如何配置你的記錄器有關。

+0

這應該是正確的答案,但我認爲,因爲問題提交者沒有命名像com.your.package.foo.bar這樣的記錄器對象,所以DEBUG配置行不起作用。 –

相關問題