我刚刚开始研究 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()
,除非您在模式布局中启用位置信息(使用 %位置等)。不过,这会对性能产生重大影响,因此请注意。
至于 catching()
和 throwing()
方法,您是否更喜欢这些方法而不是 logger.error(throwable );
。
关于java - 使用 Log4j 2 的日志记录约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464910/