有没有办法通过 slf4j 传递仅适用于当前日志事件的更多信息?可以通过 MDC 存储和访问基于请求的信息,例如用户、IP 地址或应用程序名称。稍后我可以在布局或转换器中访问该信息,而不必解析日志消息。如果我使用基于 JSON 的格式,我还有另一个字段,"appName":myApp
如果我使用 log4j 以纯文本形式登录,我可以通过%{appName}
符号访问它。有没有办法通过仅适用于一个日志事件的信息来实现这一点?例如,我想传递一个异常 id(即使是我不拥有的异常)。最好但仍然丑陋的解决方案是将 id 传递给 MDC,记录异常并在之后将其删除。有谁知道更好的解决方案?
1559 次
1 回答
6
如果您不需要使用 slf4j 并且 log4j 就足够了 - 您可以使用 log4j 的自定义消息:https ://logging.apache.org/log4j/2.x/manual/messages.html
如果你想要 slf4j - 你可以实现自己的 Logger 适配器,它会适当地处理任何额外的参数(就像http://www.slf4j.org/xref/org/slf4j/impl/JDK14LoggerAdapter.html)
于 2014-08-19T20:58:01.823 回答