java – Openshift tomcat的日志:catalina.out和localhost.out内容

我已在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.

希望这有助于某人.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...