【发布时间】:2018-06-06 16:25:53
【问题描述】:
我想配置我的日志记录设置,以便传入请求带有一个 id(即 UUID)标记,用于跟踪整个应用程序(即控制器类、服务类等)以及其他相关的请求和进程请求中的信息(即主机名、IP 地址...)。
参考 slf4j 2 文档,我看到提到了ThreadContext。对于向我的 spring-boot 应用程序发出的每个请求,我都想做类似的事情:
ThreadContext.put("id", UUID.randomUUID().toString());
ThreadContext.put("ipAddress", this.request.getRemoteAddr());
...
并在我的调试器的 PatternLayout 中调用这些键,如下所示:%X{key}。理想情况下,这将产生类似于以下内容:
[INFO] request #UUID1 #IP1: start.
[INFO] request #UUID1 #IP1: do something controller class
[INFO] request #UUID2 #IP2: start.
[INFO] request #UUID1 #IP1: do something service class
[INFO] request #UUID2 #IP2: do something controller class
[INFO] request #UUID2 #IP2: do something service class
[INFO] request #UUID1 #IP1: end.
[INFO] request #UUID2 #IP2: end.
虽然我不确定如何开始实际实施这一点。任何见解将不胜感激!
【问题讨论】:
标签: java spring spring-boot log4j log4j2