强制apache常见日志记录使用特定记录器而不是SLF4J

时间:2016-10-30 18:07:30

标签: java apache logging slf4j

我有以下代码,它试图禁用apache常见日志记录:

public class HttpMain {
  static {
    System.setProperty("org.apache.commons.logging.log",
            "org.apache.commons.logging.impl.NoOpLog");
  }

  public static void main(String[] args) {
    System.setProperty("org.apache.commons.logging.log",
            "org.apache.commons.logging.impl.NoOpLog");
    Log log = LogFactory.getLog(HttpMain.class);
    log.info("You do not want to see me");
  }
}

不幸的是我仍然看到日志消息,并且在调试过程中我发现log对象实际上是org.apache.commons.logging.impl.SLF4JLocationAwareLog的一个实例,所以看起来所有的调用都被发送到SLF4J,并由一些SLF4J处理来自maven瞬态依赖的后端。

我还尝试将-Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.NoOpLog作为JVM参数传递,但它也不起作用..

也许有人对如何避免这种情况有任何想法?有没有明确禁用常见日志记录的方法?

谢谢。

0 个答案:

没有答案