2013-03-09 101 views
2

我在NetBeans中,我想使用调试信息记录方法调用,如应用程序:怎么看log4j消息在控制台

public class PersonService { 

    protected static Logger logger = Logger.getLogger(PersonService.class.getName()); 

    public void add(Person person) { 
     logger.debug("PersonService.add called"); 
     ... 
    } 

我log4j的配置文件中的WEB-INF文件夹该项目如下:

log4j.rootLogger=DEBUG,console 

#Console Appender 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n 

我知道这应该打印调试消息到控制台,但到目前为止我什么都没有。

我也是在输出接收这样的:

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 

任何想法?

+0

是您的应用程序找到配置文件? WEB-INF通常不在类路径中。如果无法找到配置文件,则会向stdout写入错误消息,您是否看到类似的内容? – 2013-03-09 19:08:20

+1

我认为这可能是问题所在。如何告诉应用程序在哪里可以找到配置文件?有问题的消息详情。 – 2013-03-09 19:09:34

+1

我喜欢usingr的''而不是Logger.getLogger(PersonService.class.getName())''Logger.getLogger(PersonService.class)。 – 2013-03-09 19:16:06

回答

1

log4j.properties文件放入WEB-INF/classes,你应该把它保存在classpath中。

另一种(更正确的方法)是将所有.properties文件保存在单独的属性文件夹中,在创建Web档案的过程中,该内容会自动移动到WEB-INF/classes。在Eclipse中,这种文件夹名为,源文件夹的构建路径为

+0

现在正在工作。感谢zvzdhk和其他受访者。 !虽然我没想到会有这么多的消息 - ) – 2013-03-09 19:17:23

+0

@MrMorgan欢迎您虽然 – bsiamionau 2013-03-09 19:18:01

+0

只有一两件事:我使用NetBeans和Eclipse的不是。但是我在WEB-INF文件夹中有Spring.properties并且它被识别。那么为什么log.4j属性不应该被识别呢? – 2013-03-09 19:27:24