lab*_*uka 2 java logging spring-boot spring-cloud-sleuth
我已经开始学习 Sleuth,但我陷入了日志配置。
\n我有这个配置:
\n <?xml version="1.0" encoding="UTF-8"?>\n<configuration>\n <include resource="org/springframework/boot/logging/logback/defaults.xml"/>\n \xe2\x80\x8b\n <springProperty scope="context" name="springAppName" source="spring.application.name"/>\n <!-- Example for logging into the build folder of your project -->\n <property name="LOG_FILE" value="C://tmp//test"/>\xe2\x80\x8b\n\n <property name="CONSOLE_LOG_PATTERN"\n value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]){yellow} %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>\n\n <!-- Appender to log to console -->\n <appender name="console" class="ch.qos.logback.core.ConsoleAppender">\n <filter class="ch.qos.logback.classic.filter.ThresholdFilter">\n <level>INFO</level>\n </filter>\n <encoder>\n <pattern>${CONSOLE_LOG_PATTERN}</pattern>\n <charset>utf8</charset>\n </encoder>\n </appender>\n \xe2\x80\x8b\n <!-- Appender to log to file in a JSON format -->\n <appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">\n <file>${LOG_FILE}.json</file>\n <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\n <fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>\n <maxHistory>7</maxHistory>\n </rollingPolicy>\n <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">\n <providers>\n <timestamp>\n <timeZone>UTC</timeZone>\n </timestamp>\n <pattern>\n <omitEmptyFields>true</omitEmptyFields>\n <pattern>\n {\n "severity": "%level",\n "service": "${springAppName:-}",\n "trace": "%X{X-B3-TraceId:-}",\n "span": "%X{X-B3-SpanId:-}",\n "parent": "%X{X-B3-ParentSpanId:-}",\n "exportable": "%X{X-Span-Export:-}",\n "baggage": "%X{key:-}",\n "pid": "${PID:-}",\n "thread": "%thread",\n "class": "%logger{40}",\n "rest": "%message"\n }\n </pattern>\n </pattern>\n </providers>\n </encoder>\n </appender>\n \xe2\x80\x8b\n <root level="INFO">\n <appender-ref ref="console"/>\n <appender-ref ref="logstash"/>\n </root>\n</configuration>\n
Run Code Online (Sandbox Code Playgroud)\n但是当我检查文件时,我缺少traceId 和spanId。这是示例:
\n{"@timestamp":"2021-01-12T17:31:51.861Z","severity":"INFO","service":"kz-report","pid":"25248","thread":"http-nio-9089-exec-1","class":"c.k.r.s.impl.ExaminationServiceImpl","rest":"User with ID 1 and name Nemanja is fetching examination by ID 2"}\n
Run Code Online (Sandbox Code Playgroud)\n这是 pom.xml 的片段
\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-zipkin</artifactId>\n </dependency>\n \n <dependency>\n <groupId>net.logstash.logback</groupId>\n <artifactId>logstash-logback-encoder</artifactId>\n <version>6.6</version>\n </dependency>\n
Run Code Online (Sandbox Code Playgroud)\n不知道如何继续这里,我一直在阅读文档和堆栈溢出帖子,但仍然找不到任何答案。
\n提前致谢。
\n您好,“%X{X-B3-TraceId:-}”这样的符号不再起作用,您应该使用如下所示的符号:
<appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}.json</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"timestamp": "@timestamp",
"severity": "%level",
"service": "${springAppName:-}",
"trace": "%X{traceId:-}",
"span": "%X{spanId:-}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"rest": "%message"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅官方文档,它在 Spring Boot 2.5.6 上的一个我的应用程序中为我工作
归档时间: |
|
查看次数: |
6557 次 |
最近记录: |