Tomcat在webapp启动时创建了过多的输出

时间:2013-07-31 11:19:31

标签: tomcat tomcat7

请看下面的解决方案,错误描述有点模糊,因为不知道出了什么问题。

我正在尝试在linux上部署一个新的tomcat7,以便稍后克隆整个机器,所以现在想要正确设置它。 Tomcat itsel正常启动,但是当试图通过将war文件复制到webapps目录来部署我们的应用程序时,catalina错误输出文件被大约50MB的FINE日志记录(请参阅下面的部分内容)淹没,并且没有任何内容被放入正常输出文件和普通日志文件。

使用tomcat docs(\ appdev \ sample \ sample.war)提供的sample.war文件不会发生同样的情况,它会以通常的一些日志行启动。

logging.properties文件是默认的文件,其中包含每个' FINE'替换为' INFO',并且每个其他tomcat文件也未被修改。

自定义的内容:tomcat是使用jsvc和自定义启动脚本运行的。 CATALINA_BASECATALINA_HOME分开,tomcat与非root用户一起运行。编辑:不确定是否重要,但启动脚本设置有关日志记录的这些启动参数:-Djava.util.logging.config.file=<logging.proprties' path> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager以及控制台输出和控制台输出错误由启动脚本设置。

大多数错误文件的内容来自班级org.apache.tomcat.util.digester.Digester,并且似乎无害的精细级别日志。

没有SEVERE,ERROR日志,并且有一个警告关于某些未设置的区域设置,以及下面这个,但它们几乎位于日志的末尾:

Jul 31, 2013 12:34:24 PM org.apache.myfaces.component.html.util.ExtensionsFilter <init>
WARNING: Please adjust your web.xml to use org.apache.myfaces.webapp.filter.ExtensionsFilter

logging.properties现在看起来像这样:

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler
.handlers = 1catalina.org.apache.juli.FileHandler

############################################################
# Handler specific properties.

1catalina.org.apache.juli.FileHandler.level = INFO
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = INFO
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = INFO
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.

############################################################
# Facility specific properties.

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

org.apache.commons.digester.Digester.[Catalina].level = INFO
org.apache.commons.digester.Digester.[Catalina].handlers = 1catalina.org.apache.juli.FileHandler

org.apache.commons.digester.Digester.[Catalina].[localhost].level = INFO
org.apache.commons.digester.Digester.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

org.apache.commons.digester.Digester.[Catalina].[localhost].[/manager].level = INFO
org.apache.commons.digester.Digester.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler

EDIT2:为org.apache.tomcat.util.digester.Digester添加了设施特定属性,但没有成功


为什么日志会转到outfile而不是日志文件? sample.war的日志同时转到两者,但每次启动/停止只有一些行。 无论目的地是什么,为什么有任何FINE日志记录,当所有内容都设置为INFO?

所以请特别注意我可能做错了什么。我可以获得应用程序的来源并检查并修改其中的内容,但我不知道它的内部结构。即使其中存在错误,我也不认为此错误输出文件应该很大,并且日志记录应该可以使用默认配置正常工作。

1 个答案:

答案 0 :(得分:0)

解决方案来自Mustafa Yuksel,描述here。这个人是英雄,我们遇到了完全相同的问题,我们几周都无法解决这些问题。

第一个问题是war文件没有使用org.apache.tomcat.util.digester.Digester,实际上是org.apache.commons.digester.Digester.level类使用了错误的记录器。这样您就可以使用

行屏蔽FINE记录
org.apache.commons.digester.Digester.level = INFO

第二个问题是我们在项目中有一个logging.properties,我们在war文件中包含了Eclipse。该项目包括一个我们不知道的额外logging.properties文件。包含的eclipse项目在/ WEB-INF / lib /中作为jar文件存在,所以你必须深入研究它们。