2010-11-21 211 views
0

當我的記錄器設置爲「全部」時,我看到我的代碼沒有明確放置的消息。我使用的是罐子我的一個朋友給我做一些事情(我懷疑他是伐木的東西自己)log4j,外部日誌記錄

我想只記錄的東西,我問到通過發出

logger.info ("something clever"); command 
記錄

以下是我的log4j.properties

請指教。

# ***** Set root logger level to WARN and its two appenders to stdout and R. 
log4j.rootLogger=all, R 

# ***** R is set to be a RollingFileAppender. 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=log/something.log 
# ***** Max file size is set to 100KB 
log4j.appender.R.MaxFileSize=100KB 
# ***** Keep one backup file 
log4j.appender.R.MaxBackupIndex=1 
# ***** R uses PatternLayout. 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

回答

2

在這個優秀的log4j的cheatsheet請看:

基本上,您需要設置是這樣的:

log4j.rootCategory=error, R 
log4j.category.com.your.package=debug 

,或者:

log4j.category.com.your.friends.package=error 

根據需要替換軟件包名稱。

這將使根記錄器設置爲錯誤(所以任何包 - 包括你可能會使用其他庫,如Hibernate,彈簧等)將不記錄任何低級別(調試,信息,警告) ,但只記錄錯誤。

它還會設置您的軟件包(包括您的頂級軟件包或軟件包)以登錄調試級別,因此所有的記錄器都將正常記錄。它也會將你朋友的包設置爲錯誤,所以它不輸出任何內容。

如果你有一個通用的根包,就使用它。例如。如果你有包:

  • com。示例
  • com.example.a
  • com.example.a.aa
  • com.example.b
  • com.example.cd

只包含com.example,它會默認繼承下面的包。

當然,您可以覆蓋它,例如,註明:

  • com。示例 - 警告
  • com.example.a.aa - 調試

或類似的東西。看看這裏進行了詳細的解釋:

+0

我可以設置它在我的項目的所有包,或者我需要單獨添加的包? – JAM 2010-11-21 05:26:17

+0

檢查已編輯的帖子。 – 2010-11-21 06:03:43