我已在openshift tomcat7盒式磁带下部署了我的WAR应用程序.
在我的应用程序中,我使用log4j.我的log4j.properties看起来像:
log4j.rootCategory=info,A1,A2 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A2=org.apache.log4j.FileAppender log4j.appender.A2.File=myapp.log log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d %p (%t) [%c] - %m%n log4j.appender.A1.encoding=UTF-8 log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%d %p (%t) [%c] - %m%n log4j.appender.A2.encoding=UTF-8
问题是在我的openshift应用程序的$OPENSHIFT_LOG_DIR文件夹中只有两个日志文件:
[myapp.rhcloud.com logs]\> ls jbossews.log postgresql.log
在jbossews.log中,我只看到与catalina.out相关的日志行,如果在本地Tomcat 7下运行应用程序.更具体地说,在jbossews.log中我看到一般错误信息,如:
INFO: deploying web application archive /var/lib/openshift/54...1d/app-root/runtime/dependencies/jbossews/webapps/myapp.war Mar 05,2015 12:00:02 AM org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart Mar 05,2015 12:00:02 AM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/myapp] startup Failed due to prevIoUs errors Mar 05,2015 12:00:02 AM org.apache.catalina.startup.HostConfig deployWAR INFO: Deployment of web application archive /var/lib/openshift/54...1d/app-root/runtime/dependencies/jbossews/webapps/myapp.war has finished in 8,867 ms
但我看不到我的错误的细节,这些错误通常打印在localhost.out下的本地Tomcat 7下.
那么,我如何配置我的装备或应用程序以查看完整日志?谢谢.
UPD:这不是关于日志级别,因为我错过的日志部分具有错误级别.此外,如果我在本地tomcat下运行我的应用程序,我可以看到这样的事情.
解决方法
我们一直面临同样的问题.在我们的例子中,我们有一个spring应用程序可以将所有日志打印到jbossews.log,但是如果其中一个bean在启动期间出错,则错误堆栈跟踪不会打印到jbosews.log或其他任何地方.在vanilla tomcat上,这些堆栈跟踪将打印到localhost.out罚款.我们尝试过已接受的解决方案,但由于某些原因它无法运行.
但是下面的技巧对我们有用:
在.openshift / config / logging.properties中替换为:
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
有了这个:
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler
出于某种原因,通过添加java.util.logging.ConsoleHandler作为处理程序之一,在vanilla tomcat中转到localhost.out的堆栈跟踪(和其他消息)现在转到openshift中的jbossews.log.
希望这有助于某人.