2010-11-22 61 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