2013-03-09 98 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