在 log4j2 patternlayout 中使用 Sleuth trace-and span id
Use Sleuth trace-and span id in log4j2 patternlayout
我想将 sleuth 与 log4j2 一起使用。因此我使用了 .properties 配置。问题是我无法使用我的模式布局将侦探参数获取到日志中。
你能告诉我使用哪种模式来获取侦探参数吗?在我的例子中,它们总是空的。
我做了什么:
就像提到的 here [%X{spanId}] 并设置 spring.sleuth.log.slf4j.enabled=false
我的整个模式是这样的:
date: %d{ISO8601} loglevel: %X{loglevel} [%X{spanId}] user-agent: %X{useragent} servicename: %X{servicename} class:%X{classname} method:%X{methode} Line: %L message: %m%n
为了插入数据,我使用了 ThreadContext 对象:
ThreadContext.put("trace", logdata.getTrace());
当我以这种方式插入时,我得到以下示例:
NoopSpan(91406b61b7d23455/05657a824bc5c9e2)
但我想拆分数据,以便我可以将其与 elk 堆栈一起使用
编辑:
当我使用
System.out.prinln(MDC.get("X-B3_TraceId"))
在我的控制器中 class 我得到了正确的输出。但是当我在我的模式 %X{X-B3_TraceId} 中使用时,输出为空。
更新:
%X{X-B3_TraceId} 有效。我的异步日志记录工作流程有问题。
试试这个模式:
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
我想将 sleuth 与 log4j2 一起使用。因此我使用了 .properties 配置。问题是我无法使用我的模式布局将侦探参数获取到日志中。 你能告诉我使用哪种模式来获取侦探参数吗?在我的例子中,它们总是空的。
我做了什么: 就像提到的 here [%X{spanId}] 并设置 spring.sleuth.log.slf4j.enabled=false
我的整个模式是这样的:
date: %d{ISO8601} loglevel: %X{loglevel} [%X{spanId}] user-agent: %X{useragent} servicename: %X{servicename} class:%X{classname} method:%X{methode} Line: %L message: %m%n
为了插入数据,我使用了 ThreadContext 对象:
ThreadContext.put("trace", logdata.getTrace());
当我以这种方式插入时,我得到以下示例:
NoopSpan(91406b61b7d23455/05657a824bc5c9e2)
但我想拆分数据,以便我可以将其与 elk 堆栈一起使用
编辑: 当我使用
System.out.prinln(MDC.get("X-B3_TraceId"))
在我的控制器中 class 我得到了正确的输出。但是当我在我的模式 %X{X-B3_TraceId} 中使用时,输出为空。
更新: %X{X-B3_TraceId} 有效。我的异步日志记录工作流程有问题。
试试这个模式:
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>