Tomcat6部分忽略logging.properties

时间:2010-06-08 22:09:56

标签: tomcat logging tomcat6 java.util.logging

我正在使用Tomcat 6,这是我的logging.properties:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.level=FINE

org.apache.catalina.core.ApplicationContext.level = OFF

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

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

一方面,Tomcat似乎读取了这个文件,因为它正确地保存了带有前缀“mylog”的日志文件,并且只打印了日志级别为FINE及以上的邮件。另一方面,它继续写这样的日志消息:

Jun 8, 2010 9:53:30 PM org.apache.catalina.core.ApplicationContext log
SEVERE: Error writing messages
ClientAbortException:  java.net.SocketException: Broken pipe

我实际上想要禁止来自此类的所有日志消息,因为它们充斥了我的日志文件,并且错误对我来说无关紧要。那么为什么忽略以下行呢?

org.apache.catalina.core.ApplicationContext.level = OFF

是否有其他方法可以抑制此类的日志输出?

2 个答案:

答案 0 :(得分:2)

org.apache.catalina.core.ApplicationContext不是ApplicationContext中使用的记录器的名称,它使用复合的日志:org.apache.catalina.core.StandardContext的日志。

- 编辑: 也许是因为它们是上下文记录器。然后他们需要以不同的方式配置

类似

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

我之前没有这样做过,我从未使用过tomcat的日志工具,而且找不到info

答案 1 :(得分:2)

我认为Redlab在正确的轨道上 - 请注意记录器名称的根目录是org.apache.catalina.core.ContainerBase,而不是org.apache.catalina.core.StandardContext。方法org.apache.catalina.core.ContainerBase.logName()控制记录器名称,它明确地以ContainerBase.class.getName()开头。只是为了澄清,StandardContext延伸ContainerBase