【问题标题】:How to disable the debug logging of class using log4j?如何使用 log4j 禁用类的调试日志记录?
【发布时间】:2010-01-24 06:28:58
【问题描述】:

在我的 log4j.xml 中,我有

<logger name="java.sql">
   <level value="DEBUG" />
</logger>

但是使用它,它还启用了接口Resultset 的日志记录。如果我想禁用此接口的日志记录,但仍想为statementpreparedstatement 等进行调试日志记录...我该怎么做?

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    Log4j 不允许您根据类或包名称控制日志记录本身。相反,使用 log4j(和类似的 Java 记录器)的记录控制粒度由应用程序使用的记录器名称决定。如果您的 JDBC 驱动程序对语句、预准备语句、结果集等有不同的记录器,那么您就可以了。但是,如果它对所有日志记录使用单个记录器,则需要使用某种过滤。

    有关更多信息,this page 有一节介绍在 XML 配置文件中配置过滤器,Filter javadoc 列出了可用的(标准)过滤器类。例如,您可以根据日志记录事件的消息是否与给定字符串匹配进行过滤。

    话虽如此,过滤方法会很麻烦,特别是如果有很多不同的消息需要过滤入/出。

    【讨论】:

      【解决方案2】:

      您可以为这些类或包中的每一个使用单独的记录器,但这取决于这些类如何在其中创建自己的记录器。

      不过,您最好关注供应商对这些类的实现,而不是关注接口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-09
        • 1970-01-01
        • 2016-01-26
        • 1970-01-01
        • 2015-11-16
        • 1970-01-01
        相关资源
        最近更新 更多