Java Openshift tomcat';s日志:catalina.out和localhost.out内容

Java Openshift tomcat';s日志:catalina.out和localhost.out内容,java,tomcat,logging,openshift,Java,Tomcat,Logging,Openshift,我已将我的WAR应用程序部署在openshifttomcat7盒带下 在我的应用程序中,我使用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.app

我已将我的
WAR
应用程序部署在
openshift
tomcat7
盒带下

在我的应用程序中,我使用
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\u LOG\u DIR
文件夹中,只有两个日志文件:

[myapp.rhcloud.com logs]\> ls
jbossews.log  postgresql.log
jbossews.log
中,如果在本地
tomcat7
下运行应用程序,我只看到与
catalina.out
相关的日志行。更具体地说,在
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
但是我看不到我的错误的详细信息,这些错误通常打印在local
tomcat7
下的
localhost.out

那么,如何配置我的设备或应用程序以查看完整日志?谢谢


UPD:这不是关于
日志级别的问题,因为我遗漏的部分日志具有
错误
级别。此外,如果我在本地tomcat下运行我的应用程序,我可以看到这样的情况。

解决方案在这里找到:

简而言之:您必须进入
$OPENSHIFT\u DATA\u DIR
目录,在这里上传
log4j.jar
并配置
catalina.properties
从该目录加载
jar


common.loader=${catalina.base}/lib,${catalina.base}/lib/.jar,${catalina.home}/lib}/lib/.jar,${catalina.home}/lib/.jar,/var/lib/openshift/51..36/app root/data/libs/*.jar
我正在从服务器直接打开日志文件

我的问题是使用命令
tail
use
cat
查看完整文件:


cat app root/logs/jbossews.log

我们一直面临着同样的问题。在我们的例子中,我们有一个spring应用程序,它可以将所有日志打印到
jbossews.log
,但是如果其中一个bean在启动过程中抛出错误,错误堆栈跟踪将不会打印到
jbosews.log
或其他任何地方。在普通tomcat上,这些堆栈跟踪将打印到
localhost.out
fine。我们曾尝试过公认的解决办法,但由于某种原因,它行不通

然而,以下技巧对我们有效:

.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
作为处理程序之一,香草tomcat中进入
localhost.out
的堆栈跟踪(和其他消息)现在进入openshift中的
jbossews.log


希望这对其他人有所帮助。

对于未缩放的应用程序,它同样有效,但对于缩放的应用程序,它将失败<代码>数据
文件夹未跨多个文件夹复制。我宁愿将
log4j.jar
放在git repo的子文件夹中,并相应地修改
catalina.properties
,比如:
common.loader=..${catalina.home}/./app root/repo/myJars/*.jar
@ptrk谢谢你的评论!我相信它很值得!