2010-11-18 138 views
0

我想配置我的日志系统基于slf4jlog4j。我想记录com.A类的所有消息。只有那些消息。log4j的配置

所以我在配置文件中写道

 
log4j.rootLogger=FATAL, All 
log4j.rootLogger=DEBUG, A1 
log4j.appender.A1=com.A 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.conversionPattern=%m%n 

我的亚军(com.Start类)包含

PropertyConfigurator.configure("log4j.properties"); 

但是当我启动应用程序,我得到

log4j:ERROR A "com.A" object is not assignable to a "org.apache.log4j.Appender" variable. 
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [[email protected]] whereas object of type 
log4j:ERROR "com.A" was loaded by [[email protected]]. 
log4j:ERROR Could not instantiate appender named "A1". 
log4j:WARN No appenders could be found for logger (com.Start). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

哪里是我的错误?

谢谢。

回答

2

您的配置文件写入不正确。
追加程序不应该是类/包减速,但一个类型的appender你想输出消息(留空,如果你想输出到默认的appender)
该文件应该看起来更像:

 
log4j.rootLogger=FATAL 
log4j.logger.com.A=DEBUG 
+0

感谢。但是有一些无法识别的错误。我编辑了我的消息。 – 2010-11-18 19:44:08

2

你的文件格式正确吗?你张贴的东西看起来破碎。我把一些换行:

log4j.rootLogger=FATAL, All 
log4j.rootLogger=DEBUG, A1 
log4j.appender.A1=com.A 
log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.conversionPattern=%m%n 

而且此行似乎是错误的:

log4j.appender.A1=com.A 

它需要指定一个真正的appender类的名称,如

log4j.appender.A1=org.apache.log4j.ConsoleAppender 
+0

谢谢。春天日志有一些appender。我更新了我的消息。 – 2010-11-18 19:46:05