关闭Apache通用日志记录

我在独立应用程序中使用Apache Common Logging库。在网上搜索后,我尝试通过使用以下方式关闭日志记录

package javaapplication1;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

/**

*

* @author yccheok

*/

public class Main {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");

log.info("You do not want to see me");

}

private static final Log log = LogFactory.getLog(Main.class);

}

但是,我仍然可以看到正在打印的日志消息。我可以知道我错过了什么吗?

我可以通过以下方式关闭日志记录

# Sample ResourceBundle properties file

org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog

在commons-logging.properties中。

但是,在开发期间,我的Netbeans不知道从何处获取commons-logging.properties,有时我需要在开发期间关闭日志记录。

回答:

正如其他人指出的,之所以发生这种情况,是因为 设置属性 创建Log对象。

一种解决方法是在Main类的静态初始化程序块中设置属性-该属性将在首次加载类时以及在创建静态最终Log之前运行:

public class Main {

static {

System.setProperty("org.apache.commons.logging.Log",

"org.apache.commons.logging.impl.NoOpLog");

}

// Rest of class as before

}

以上是 关闭Apache通用日志记录 的全部内容, 来源链接: utcz.com/qa/398012.html

回到顶部