我有以下代码,它试图禁用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参数传递,但它也不起作用..
也许有人对如何避免这种情况有任何想法?有没有明确禁用常见日志记录的方法?
谢谢。