2013-02-21 87 views
1

我剛剛將第一個應用部署到CloudFoundry,並使用log4j。當我將應用程序部署到本地tomcat服務器時,日誌打印就好,因爲一切正常。但是,當我使用「VMC日誌」命令從CloudFoundry實例獲得的日誌,我只得到Tomcat的初始化日誌和此消息:將Log4j日誌部署到CloudFoundry時隱藏或吞噬

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

任何進一步,我已經印有log4j的不可見。 System.out.println消息顯示,但沒有log4j消息。

我已經把我的log4j.properties文件在我的WEB-INF目錄,這裏是它的內容:

# Set root logger level to DEBUG and its only appender to A1. 
log4j.rootLogger=INFO, A1 
# A1 is set to be a ConsoleAppender. 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 
# A1 uses PatternLayout. 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%-5p %-35c{1} %m%n 
log4j.logger.org.springframework=WARN 

創建我的記錄器對象可能會在我的課可以預期:

private static Logger log = Logger.getLogger(MyClass.class); 

任何有關我缺少什麼配置讓我的Log4j日誌顯示在我的CloudFoundry日誌中的建議?還是我錯誤地檢索它們?

回答

2

Log4j默認設置爲輸出到STDOUT嗎? 'vmc logs'只會返回STDOUT,STDERR和登臺日誌文件的內容。

如果您的應用正在記錄到其他文件,請使用'vmc文件'查看內容。

+0

在我看來,由於某種原因,當它部署到CloudFoundry時,應用程序無法找到開始的log4j.properties文件。我把它放在我的web-inf文件夾中,所以它應該能夠找到它。同樣,如果我部署到本地tomcat服務器,日誌打印就好了,我沒有看到關於log4j沒有正確配置的任何警告。 – therrin150 2013-02-21 20:54:57

+0

爲了澄清,文件需要位於類路徑中,所以在WEB-INF/classes中(而不僅僅是WEB-INF)。您清楚得到的警告消息是無法找到文件的標誌。另外,請確定它確實存在於你的戰爭文件中(可能是在開發環境中,它可以通過一些魔術,也許在你的IDE中,或者其他任何東西 - 這可能是領先的,沒有更多的上下文) – ebottard 2013-02-22 08:59:18

+0

謝謝你們的回覆,他們都解決了我遇到的問題,而且一切似乎都按我期望的方式運行。 – therrin150 2013-02-22 16:10:45