【问题标题】:Reduce verbosity of Tomcat Digester logger in log4j.xml减少 log4j.xml 中 Tomcat Digester 记录器的详细程度
【发布时间】:2015-08-19 15:05:52
【问题描述】:

据我所知,这些晦涩的日志消息与 Tomcat 的 Digester 日志记录组件相关联。有谁知道如何减少这些日志的详细程度?

以下调试消息似乎无限重复,消息之间有 100-10,000 行,并且由于重复的上下文切换,我正在使用的应用程序的启动时间至少增加了 20 分钟(据我知道)。除了 Digester 消息之外,没有任何痕迹。

这个晦涩的调试消息对任何人来说都是正常的吗?

2015-08-19 10:59:30,607 DEBUG [Digester] - <  Fire end() for SetNextRule[methodName=addOperation, pa
ramType=org.apache.tomcat.util.modeler.OperationInfo]>
2015-08-19 10:59:30,607 DEBUG [Digester] - <[SetNextRule]{mbeans-descriptors/mbean/operation} Call o
rg.apache.tomcat.util.modeler.ManagedBean.addOperation(org.apache.tomcat.util.modeler.OperationInfo@
2f64a8b)>
2015-08-19 10:59:30,632 DEBUG [IntrospectionUtils] - <IntrospectionUtils: callMethod1 org.apache.tom
cat.util.modeler.ManagedBean org.apache.tomcat.util.modeler.OperationInfo org.apache.tomcat.util.mod
eler.OperationInfo>
2015-08-19 10:59:30,632 DEBUG [Digester] - <  Fire end() for SetPropertiesRule[]>
2015-08-19 10:59:30,632 DEBUG [Digester] - <  Fire end() for ObjectCreateRule[className=org.apache.t
omcat.util.modeler.OperationInfo, attributeName=null]>
2015-08-19 10:59:30,632 DEBUG [Digester] - <[ObjectCreateRule]{mbeans-descriptors/mbean/operation} P
op org.apache.tomcat.util.modeler.OperationInfo>
2015-08-19 10:59:30,632 DEBUG [sax] - <characters(

    )>
2015-08-19 10:59:30,632 DEBUG [sax] - <startElement(,,operation)>
2015-08-19 10:59:30,632 DEBUG [Digester] - <  Pushing body text '

这是我正在使用的 log4j.xml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender class="org.apache.log4j.ConsoleAppender" name="stdout">
        <layout class="my.log.SyslogPatternLayout">
            <param value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %t %-5p %m%n" name="ConversionPattern"/>
        </layout>
        <filter class="my.log.filter.DynamicLevelFilter">            
            <param name="useJmx" value="true" />
            <param name="baseLogLevelName" value="logging.baselevel.core" />
        </filter>
    </appender>
    <appender class="org.apache.log4j.net.SyslogAppender" name="syslog">
        <param value="LOCAL4" name="facility"/>
        <param value="localhost" name="SyslogHost"/>
        <layout class="my.log.SyslogPatternLayout">
            <param value="{%t} %N{loggingFeature}|%N{loggingComponent} [%D] - %p %m%n" name="ConversionPattern"/>
        </layout>
    </appender>
    <logger name="com.mchange.v2">
        <level value="info"/>
    </logger>
    <logger name="org.hibernate">
        <level value="info"/>
    </logger>
    <logger name="org.springframework">
        <level value="info"/>
    </logger>
    <logger name="net.sf.ehcache">
        <level value="info"/>
    </logger>
    <root>
        <level value="info"/>
        <appender-ref ref="stdout"/>
        <appender-ref ref="syslog"/>
    </root>
</log4j:configuration>

*/tomcat/conf/logging.properties 文件有以下内容:

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

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.

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

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


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

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.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = INFO

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = INFO

调试消息是如何进入的?我什至不希望这些日志出现在这里。

【问题讨论】:

  • 有问题的消息具有 DEBUG 级别,并且根记录器设置为 INFO。更改根日志级别后,问题仍然存在。他们删除了他们的评论。

标签: java xml tomcat logging


【解决方案1】:

您想减少 tomcat 日志记录,对吗?删除 logging.properties 文件。然后从该 appender 中删除包含 org.apache.log4j.net.SyslogAppender 的 appender。整个一个。这将禁用您的 tomcat 日志记录。 Info 也吐出很多信息是我观察到的。

【讨论】:

  • 不走运。删除 appender 和 logging.properties 文件后,我仍然得到 Digester 日志。也许类路径坏了……或者什么。
  • 您必须重新部署。并检查您在 classes 文件夹中是否没有 logging.properties 文件。
  • 是的,我重新部署了,但仍然没有运气。我不知道这些消息可能来自哪里。
  • 我想你也删除了 appender。您可以使用任何存档管理器签入您的战争文件,打开它,进入 WEB-INF/classes/ 并检查。
  • WEB-INF/classes 包含 log4j.xml 文件,并且没有 *.properties 文件。 log4j.xml 与我在问题部分列出的相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2021-01-04
  • 2016-10-25
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多