Jhe*_*ico 6 java logging log4j stack-trace slf4j
我目前正试图在hibernate中追踪一些延迟加载调用的来源,最简单的方法是在懒惰加载发生时打开hibernate SQL日志,然后理想情况下每当触发堆栈跟踪输出时使用记录器.现在我正在使用Hibernate 3.5.2,它使用SLF4j并使用Log4j作为我的日志记录实现.
我想我可以使用AOP来包围每个日志记录调用,并检查它是否是对SQL记录器的调用,但这看起来有点沉重,我想知道在我走这条路之前是否有一种更简单的方法.
您可以扩展其中一个log4j appender,然后在log4j.xml中使用它.
public class StackPrintingFileAppender extends FileAppender {
protected void subAppend(LoggingEvent event) {
new Exception().printStackTrace(new PrintWriter(qw));
super.subAppend();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在log4j.xml中:
<appender name="logger" class="StackPrintingFileAppender">
...
</appender>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |