2010-11-22 63 views
5

我想要從同一個類中生成的特定消息單獨記錄。那麼,如何在同一個類中創建2種不同類型的記錄器。目前,屬性文件看起來像使用Log4J在同一類中的不同記錄器使用Log4J

log4j.rootCategory=DEBUG, O 

# Stdout 
log4j.appender.O=org.apache.log4j.ConsoleAppender 
log4j.appender.O.layout=org.apache.log4j.PatternLayout 
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 

# File 
log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender 
log4j.appender.MESSAGE.File=target/logs/messages.log 
# Control the maximum log file size 
log4j.appender.MESSAGE.MaxFileSize=1000KB 
# Archive log files (one backup file here) 
log4j.appender.MESSAGE.MaxBackupIndex=100 
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout 
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M   (%  F:% L) - %m%n 
log4j.appender.MESSAGE. 

log4j.category.failedMessagesLog=INFO, MESSAGE 

我使用的日誌記錄在我的代碼如下: - /**記錄儀。 */

Logger logger = Logger.getLogger(MyClass.class); 
Logger msgLogger = Logger.getLogger("MESSAGE"); 

在測試時,我得到創建了一個空日誌文件(messages.log)。 有什麼建議?

回答

1
log4j.rootCategory=DEBUG, O 

log4j.appender.O=org.apache.log4j.ConsoleAppender 
log4j.appender.O.layout=org.apache.log4j.PatternLayout 
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n 

log4j.appender.MESSAGE=org.apache.log4j.RollingFileAppender 
log4j.appender.MESSAGE.File=target/logs/messages.log 
log4j.appender.MESSAGE.MaxFileSize=1000KB 
log4j.appender.MESSAGE.MaxBackupIndex=100 
log4j.appender.MESSAGE.layout=org.apache.log4j.PatternLayout 
log4j.appender.MESSAGE.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M 


log4j.appender.**MESSAGE2**=org.apache.log4j.RollingFileAppender 
log4j.appender.**MESSAGE2**.File=target/logs/**messages2**.log 
log4j.appender.**MESSAGE2**.MaxFileSize=1000KB 
log4j.appender.**MESSAGE2**.MaxBackupIndex=100 
log4j.appender.**MESSAGE2**.layout=org.apache.log4j.PatternLayout 
log4j.appender.**MESSAGE2**.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M  

log4j.category.failedMessagesLog=INFO, MESSAGE , **MESSAGE2** 

「failedMessagesLog」 是java文件到附加器(INFO,MESSAGE, MESSAGE1)被應用。 我剛剛重用了現有的RollingFileAppender。你可以使用任何其他的appender(比如fileAppender)。

您應該使用正確的類名Logger logger = Logger.getLogger(MyClass.class) 應改爲private static final Logger log = Logger.getLogger(**failedMessagesLog.class**);

確保您使用的log4j的日誌即

import **org.apache.log4j.Logger**; 
7

創建兩個不同名稱的記錄器。您可以在每個名稱的基礎上配置它們。 一個簡單的方法是爲你的課程名稱添加一個後綴。例如

Log log1 = LogFactory.getLog(getClass().getName()+".log1"); 
Log log2 = LogFactory.getLog(getClass().getName()+".log2"); 

在您的屬性文件中。

log4j.category.mypackage.myclass.log1=INFO, MESSAGE1 
log4j.category.mypackage.myclass.log2=INFO, MESSAGE2 
+0

我在我的代碼記錄爲: – 2010-11-22 16:41:49