我们有一个应用程序,其中没有运行它的上下文(即数据库)的日志消息几乎没有意义。信息始终可用,但手动将其包含在各处都非常麻烦。有更优雅的方式吗?
我正在考虑实现一个包含日志信息的包装器。我试过了,但我希望LogFactory(slf4j或Log4j)默认选择这个类,我不知道该怎么做......
有什么建议吗?
答案 0 :(得分:2)
您可以查看NDC
或MDC
classes。您可以在堆栈上推送上下文信息,并将其自动包含在您的日志消息中。
您可以找到一个小示例here。
在PatternLayout
中,使用'%x'
记录NDC
信息,'%X'
使用MDC
。
答案 1 :(得分:0)
对于log4j,创建一个从PatternLayout扩展的类来创建自己的布局。