Spring cloud 春云侦探+;log4j2
我的一些微服务使用log4j2作为记录器。springcloudsleuth支持logback。在这种情况下,如何使用Sleuth获取分布式跟踪。我知道要在log4j2中使用sleuth,我必须实现某些类。我试过了,但运气不好。Spring cloud 春云侦探+;log4j2,spring-cloud,spring-cloud-netflix,spring-cloud-sleuth,Spring Cloud,Spring Cloud Netflix,Spring Cloud Sleuth,我的一些微服务使用log4j2作为记录器。springcloudsleuth支持logback。在这种情况下,如何使用Sleuth获取分布式跟踪。我知道要在log4j2中使用sleuth,我必须实现某些类。我试过了,但运气不好。 请提供帮助请试用我们内部使用的最新2.0.0.M6版本。您可以查看模块如何正确设置日志机制 在Spring Cloud Sleuth中,只需创建如下bean: @Bean CurrentTraceContext log4jTraceContext() { return
请提供帮助请试用我们内部使用的最新2.0.0.M6版本。您可以查看模块如何正确设置日志机制 在Spring Cloud Sleuth中,只需创建如下bean:
@Bean
CurrentTraceContext log4jTraceContext() {
return MDCCurrentTraceContext.create();
}
这是我的示例log4j2配置,它记录JSON,包括Sleuth的
spanId
和traceId
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Appenders>
<Console name="ConsoleJson" target="SYSTEM_OUT" follow="true">
<JsonLayout complete="false" compact="true" eventEol="true" properties="true"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="ConsoleJson"/>
</Root>
</Loggers>
</Configuration>
:
性质
布尔值
如果为true,则appender包含线程上下文
在生成的JSON中映射。默认为false
因此,线程上下文映射是此信息的实际持有者,要在其他布局(patternallayout
)中使用它,必须使用一些上下文映射访问键,如%X{spanId}
Sleuth
将traceId和spanId放入MDC
(映射的诊断上下文)
您可以使用%X
检查MDC键值对,与搜索相关的键值为traceId
,spanId
,parentId
,spanExportable
要模拟logback默认样式,只需将下面的代码片段添加到您的模式布局中即可:
[${APP_NAME},%X{traceId},%X{spanId},%X{spanExportable}]
${APP_NAME}
就是你的spring:application:NAME
我想他问的是Log4j2,而不是Log4j12I我刚才试过Log4j2。一旦您禁用了slf4j,即setspring.sleuth.log.slf4j.enabled=false,它就会立即生效。此处的任何帮助都会遇到相同的问题。唯一可能的解决方案似乎是直接集成brave库