【问题标题】:Log4j - filtering out logs for current project onlyLog4j - 仅过滤当前项目的日志
【发布时间】:2011-05-08 12:22:36
【问题描述】:

拥有log4j.properties 文件,它记录的内容比我预期的要多,特别是它记录了 Spring 库的事件。
并且只需要过滤项目特定的事件。

是不是一些过滤参数,指定应该记录哪些类(项目或命名空间)?

谢谢。

【问题讨论】:

    标签: java log4j filtering


    【解决方案1】:

    我找到了另一种方法。

    我在使用 DEBUG 或更高级别时遇到问题,我在项目中使用的库正在进入控制台。 最好正确配置您的项目,但您可以通过禁用特定包的记录器来实现。

    在下面的 sn-p 中,所有以 org.* 开头的包都被禁用。 为我完成了这项工作。 在手册中找到这个:http://logging.apache.org/log4j/1.2/manual.html

    log4j.rootLogger=INFO, stdout
    
    # Disables logger for all org.* packages
    log4j.logger.org=OFF 
    

    【讨论】:

      【解决方案2】:

      是的,创建一个使用您的包名称的记录器条目。

      log4j.logger.com.my.package=INFO
      

      将您的 appender 设置为更详细的设置,并将根 appender 设置为更高级别,例如 ERROR 或 WARN。

      log4j.rootLogger=ERROR, stdout
      

      看到这个帖子:Log4j | Updating the Log Level for the Appender

      【讨论】:

      • 我们可以在 Java 中做到这一点吗?我们如何将日志记录设置到特定的包?
      【解决方案3】:

      来自log4j 手册:

      # Print only messages of level WARN or above in the package com.foo.
      log4j.logger.com.foo=WARN
      

      com.foo 替换为要忽略的值,并将日志记录级别设置为某个较高的值,例如WARNERROR

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-15
        • 1970-01-01
        • 2012-02-06
        • 2020-05-03
        • 2013-08-31
        • 1970-01-01
        相关资源
        最近更新 更多