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

时间:2015-03-05 05:24:54

标签: java tomcat logging openshift

我已在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_LOG_DIR应用中的openshift文件夹中只有两个日志文件:

[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 :这不是log level,因为我错过的部分日志都是error级别。此外,如果我在本地tomcat下运行我的应用程序,我可以看到这样的事情。

3 个答案:

答案 0 :(得分:7)

我们一直面临同样的问题。在我们的例子中,我们有一个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。 / p>

希望这有助于某人。

答案 1 :(得分:0)

此处找到了解决方案:https://forums.openshift.com/log4j-with-tomcat7-it-not-works

简而言之:您必须前往$OPENSHIFT_DATA_DIR目录,在此处上传log4j.jar并配置catalina.properties以从该目录加载jars

common.loader=${catalina.base}/lib,${catalina.base}/lib/.jar,${catalina.home}/lib,${catalina.home}/lib/.jar,/var/lib/openshift/51..36/app-root/data/libs/*.jar

答案 2 :(得分:0)

我正在从服务器直接打开日志文件

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

cat app-root/logs/jbossews.log

相关问题