关闭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 fileorg.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