代码之家  ›  专栏  ›  技术社区  ›  Bob

Tomcat6部分忽略logging.properties

  •  2
  • Bob  · 技术社区  · 14 年前

    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 回复  |  直到 14 年前
        1
  •  2
  •   Redlab    14 年前

    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 寻找

        2
  •  2
  •   Community Egal    7 年前

    我想 Redlab 在正确的轨道上-请注意,logger名称的根是 org.apache.catalina.core.ContainerBase org.apache.catalina.core.StandardContext . 方法 org.apache.catalina.core.ContainerBase.logName() 控制记录器名称,并以 ContainerBase.class.getName() . 只是想澄清一下, StandardContext 延伸 ContainerBase .