我刚刚开始研究Log4j 2.0.查看用户指南,似乎已经实现了一些新功能,目前我对应该何时使用感到有些困惑.主要示例是流日志记录.
public class LogTest {
public static void main(final String[] args) {
logger.entry();
doTest("value");
try {
doTest(null);
}
catch (final Exception e) {
logger.catching(e);
}
logger.exit();
}
private static void doTest(final String value) {
logger.entry();
if (value == null) {
final Exception e = new IllegalArgumentException(
"value must not be null");
throw logger.throwing(e);
}
System.out.println(value);
logger.exit();
}
}
我的问题是,我是否按预期方式使用logger.throwing()和logger.catching()?
解决方法:
是的,看起来正确.请注意,如果您在许多地方使用entry()和exit(),除非您在模式布局中启用位置信息(使用%location等),否则很难区分所得到的消息.但是,这会对性能产生重大影响,因此请注意.
至于catching()和throwing()方法,是否喜欢使用这些方法而不是logger.error(throwable);可能是一个问题.