我已在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下运行我的应用程序,我可以看到这样的事情。
答案 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