【问题标题】:How to remove spring info from jetty logs?如何从码头日志中删除弹簧信息?
【发布时间】:2013-01-15 10:16:58
【问题描述】:

我的日志文件中不断收到信息消息。

我正在使用码头和弹簧。

INFO org.springframework.remoting.support.RemoteInvocationTraceInterceptor - Processing of HessianServiceExporter remote call resulted in exception...

我没有收到关于 tomcat 的消息。有没有办法关闭这些消息?

我也在使用 log4j slf4j 和 commons 日志记录。

当我调试 log4j 时,会加载正确的配置文件。

不知何故,另一个日志记录正在将这些消息添加到文件中......

我认为因为 Spring 使用公共日志记录,它使用 RemoteInvocationTraceInterceptor 生成信息消息。

无论您在 log4j.xml 中设置什么,公共日志记录都不会将其发送到 log4j,而只会写入信息。

【问题讨论】:

    标签: java logging jetty


    【解决方案1】:

    Spring 在 log4j 中使用了一种奇怪的模式(恕我直言):

    例如,在“MyClass”类中,他们不写(这很常见):

    logger=LogFactory.getLog(MyClass.class);
    

    但他们会写

    logger=LogFactory.getLog(getClass());
    

    所以如果派生类“MyDerived extends MyClass”使用其父类“MyClass”的方法,调用会被log4j根据类“MyDerived”过滤,而不是“MyClass”,这很不直观,因为调用在文件'MyClass.java'中

    所以你可以在这种情况下过滤它

    <logger name="MyDerived" additivity="false">
        <level value="fatal" />
    </logger>
    

    或(.properties 格式) log4j.logger.MyDerived=错误

    【讨论】:

      【解决方案2】:

      您可以通过在log4j.properties中指定以下内容来关闭spring的INFO级别日志

      log4j.logger.org.springframework.remoting.support=ERROR
      

      support 包下的所有类只写错误日志。如果您需要完整的springframework,请指定类似

      log4j.logger.org.springframework=ERROR
      

      【讨论】:

        【解决方案3】:

        尝试从您的

        中过滤/删除org.springframework.remoting.support.RemoteInvocationTraceInterceptor

        【讨论】:

        • 不起作用。 spring INFO 消息在 jetty 中使用时似乎使用了另一种日志记录方法。
        猜你喜欢
        • 2019-08-25
        • 2020-05-16
        • 2018-01-03
        • 1970-01-01
        • 2018-10-07
        • 2018-01-09
        • 2020-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多