2016-06-17 128 views
1

我有一个简单的Maven项目,并试图获得log4j实施。Maven项目log4j不工作

部署到本地tomcat。没有在eclipse的控制台中打印logger.debug()。

我错过了什么吗?

这是我的结构:enter image description here

的pom.xml:

<!-- http://mvnrepository.com/artifact/log4j/log4j --> 
<dependency> 
<groupId>log4j</groupId> 
<artifactId>log4j</artifactId> 
<version>1.2.17</version> 
</dependency> 

类:

final static Logger logger = Logger.getLogger(myclass.class); 

的.properties文件

# Root logger option 
log4j.rootLogger=INFO, stdout 
log4j.rootLogger=DEBUG, stdout 
log4j.rootLogger=ERROR, stdout 
# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p  %c{1}:%L - %m%n 
+0

为什么你有几个rootLogger属性定义?我的猜测是,最后一个将rootLogger设置为ERROR级别的设置覆盖了前两个设置。你应该只在中间有DEBUG行。 – rmlan

+0

如果我还想要这些,该怎么办? –

+0

查看我的回答获取解释 – rmlan

回答

1

只需删除多余的rootLogger声明:

# Root logger option 
log4j.rootLogger=DEBUG, stdout 
# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p  %c{1}:%L - %m%n 

日志记录级别包含“高于”级别的级别。例如,将日志级别设置为DEBUG将自动包括DEBUG,INFO,WARN,ERROR和FATAL消息。没有必要为每一个声明日志级别。

+0

ahhhhhh ...得到了亚 –

+0

感谢我的朋友.....现在工作 –