【发布时间】:2019-01-07 16:29:55
【问题描述】:
我的项目中使用了自定义 logback appender。该项目基于 REST 控制器。 是否有可能访问 spring 控制器中记录器使用的 logback appender 中的当前请求参数?我需要根据请求参数写一些东西来登录。 我可以看到 logback 在 spring boot bean 之前初始化,这对我不利。
【问题讨论】:
我的项目中使用了自定义 logback appender。该项目基于 REST 控制器。 是否有可能访问 spring 控制器中记录器使用的 logback appender 中的当前请求参数?我需要根据请求参数写一些东西来登录。 我可以看到 logback 在 spring boot bean 之前初始化,这对我不利。
【问题讨论】:
使用 org.slf4j.MDC:您可以随时将值放入 MDC。在其他任何事情之前。 示例:
@ResponseBody
@RequestMapping(value="/myRequest", method = RequestMethod.GET)
public String doAnyAction(@RequestParam(value="Key", required = true) long key)
{
MDC.put("key", key);
logger.info(key);
}
并更改您的 Logback.xml 附加程序以添加“密钥”:
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<layout>
<Pattern>%X{key} - %m%n</Pattern>
</layout>
</appender>
【讨论】: