我正在使用slf4j + log4j和我的库。
我在一个快速的应用程序中使用它,我真的不关心配置日志记录......或者至少我不认为我在乎。
如果我没有配置log4j,我会收到标准警告消息
log4j:WARN No appenders could be found for logger com.xyz.abcdbabble
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
哪个好。 如果我那么
logger.debug("Blah blah blah")
然后记录器不打印任何内容。太好了!
但如果我这样做
if (logger.isDebugEnabled())
{
System.out.println("print some complex stuff:");
print_some_complex_stuff();
}
然后括号中的东西被执行。是什么给了什么?
我正在寻找一种方法来确定是否打印出应该具有等效启用logger.debug()
的内容,即使在最终应用程序中未配置log4j也是如此。我怎么能这样做?
答案 0 :(得分:1)
我没有试图弄清楚log4j默认配置的逻辑,而是放入一个配置文件(log4j.properties),如:
log4j.rootLogger=debug, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
至少这会让你掌控一切。
答案 1 :(得分:0)
不是捆绑log4j,而是捆绑来自slf4j发行版的“简单”后端。然后事情就像你想要的那样工作,并且用户不能修补。