Sus*_*ath 5 java slf4j java.util.logging mdc
我有一个使用Slf4j和java.util.Logging设置的日志记录机制.我有几个线程,所以我无法从日志中得到一个清晰的想法,因为它们是混合的.现在我尝试使用MDC概念在日志文件中添加更多数据,以便它们清晰.
问题与Slf4j中的一样,虽然它支持MDC java.util.Logging不支持.但它说
如果底层框架不提供MDC,例如java.util.logging,则SLF4J仍将存储MDC数据,但其中的信息需要由自定义用户代码检索.
我正在尝试找到一种方法来执行此自定义代码.谷歌搜索对我没什么帮助.Slf4j中有一个名为"BasicMDCAdapter"的辅助类.但我不知道如何使用它.我无法在任何地方找到示例代码.
这也是一个有助于此的代码,但仍然没有给出一些描述.
我很感激这里的帮助.
谢谢.
根据您希望实现的目标,您可以完全避免使用自定义代码.
使用JUL到SLF4J Bridge
这是一个可用的桥,它挂钩到java.util.Logging(JUL)并将所有日志事件转发到SLF4J.使用日志输出允许使用任何SLF4J日志记录实现(例如Logback或Log4j)来为两个日志记录API编写组合日志输出.
使用JUL到SLF4J Bridge,您可以免费获得任何支持它的SLF4J实现的MDC支持.
写一个JUL扩展
如果要保持日志记录系统分离,则需要编写一个JUL扩展,它"读取"MDC并将其值输出到日志中.如果您查看SLF4J MDC类,它有一个访问其所有值的方法:org.slf4j.MDC.getCopyOfContextMap().
请记住,默认的JUL处理程序非常有限.因此,我认为你必须实现自己的,然后可以访问MDC.但是,您需要首先检查它们是否在同一个线程中调用.
| 归档时间: |
|
| 查看次数: |
3339 次 |
| 最近记录: |