跨方法记录标识符
Logging Identifiers across methods
我有一些 ID(来自数据库的 ID,例如 34645),我目前使用类似以下内容记录为“[34645] - 发生了一些事情”:
log.info("[" + id + "]" + foo);
有些日志,例如 "server starting"、"database connection bla" 没有 ID,因此不记录任何日志,这很好。
然而,当我有一个 id 时,我调用的方法也会记录,但没有 id,比如:
lookup(name) {
//do some lookup and stuff
log.info("[" + name + "]" has some info we use somewhere: " + result);
}
有没有一种(智能)方法可以在不将 id 传递给 lookup() 或重构 class 层次结构的情况下将 id 记录在 lookup() 中?有不同的线程记录,因此 setting/unsetting logback 使用的 id 值可能很难正确。
根据要求,我喜欢学分,您可以使用 MDC。
相关信息在这里:http://logback.qos.ch/manual/mdc.html
谢谢 :)
我有一些 ID(来自数据库的 ID,例如 34645),我目前使用类似以下内容记录为“[34645] - 发生了一些事情”:
log.info("[" + id + "]" + foo);
有些日志,例如 "server starting"、"database connection bla" 没有 ID,因此不记录任何日志,这很好。
然而,当我有一个 id 时,我调用的方法也会记录,但没有 id,比如:
lookup(name) {
//do some lookup and stuff
log.info("[" + name + "]" has some info we use somewhere: " + result);
}
有没有一种(智能)方法可以在不将 id 传递给 lookup() 或重构 class 层次结构的情况下将 id 记录在 lookup() 中?有不同的线程记录,因此 setting/unsetting logback 使用的 id 值可能很难正确。
根据要求,我喜欢学分,您可以使用 MDC。
相关信息在这里:http://logback.qos.ch/manual/mdc.html
谢谢 :)