部署到CloudFoundry时,Log4j会记录隐藏或吞噬

时间:2013-02-21 16:35:45

标签: log4j cloudfoundry

我刚刚将我的第一个应用程序部署到CloudFoundry,并使用了log4j。当我将应用程序部署到本地tomcat服务器时,日志打印得很好,因为一切都很好。但是,当我使用“vmc logs”命令从CloudFoundry上的实例获取日志时,我只获取了tomcat初始化日志和此消息:

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

我的logger对象是在我的类中可能出现的那样创建的:

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

关于我缺少什么配置以使我的log4j日志显示在我的CloudFoundry日志中的任何建议?还是我错误地检索它们?

1 个答案:

答案 0 :(得分:3)

默认情况下Log4j是否设置为输出到STDOUT? 'vmc logs'只返回STDOUT,STDERR和登台日志文件的内容。

如果您的应用程序正在登录其他文件,请使用“vmc文件”查看内容。