Невозможно получить GELF Appender для добавления идентификатора Sleuth Span Id
Я пытаюсь добавить Sleep Span-Id и Trace-Id в качестве additonalFields в мой logback-sping.xml GELF-приложение, но мне не повезло. Они хорошо отображаются в реальном файле журнала на консоли, но в Graylog они не отображаются. ПРИМЕЧАНИЕ: профиль работает просто отлично.
<property name="CONSOLE_LOG_PATTERN" value="%date{ISO8601} [${springProfile}] [${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}] [%level] [${PID}] [%X{bindName}] [%thread] [%logger{10}] : %msg%n %ex{20}"/>
<springProfile name="integration,qa,prod">
<appender name="GELF" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
<graylogHost>${graylogProtocol}:${graylogHost}</graylogHost>
<graylogPort>${graylogPort}</graylogPort>
<facility>${springAppName}</facility>
<additionalFields>profile=${springProfile},traceid=%X{X-B3-TraceId:-},spanid=%X{X-B3-SpanId:-}</additionalFields>
<extractStackTrace>true</extractStackTrace>
<filterStackTrace>true</filterStackTrace>
<maximumMessageSize>8192</maximumMessageSize>
<timestampPattern>yyyy-MM-dd HH:mm:ss,SSSS</timestampPattern>
</appender>
</springProfile>
Также попробовал это:
<additionalFields>profile=${springProfile},traceid=${X-B3-TraceId},spanid=${X-B3-SpanId}</additionalFields>
Неудачно.
1 ответ
Решение
Дополнительные поля являются статическими. Они могут быть предварительно обработаны путем применения системных свойств, но не извлекают значения из MDC (%X
).
использование mdcFields
для этого:
<mdcFields>X-B3-TraceId,X-B3-SpanId</mdcFields>
mdcFields
не поддерживает именование полей включенных полей MDC (например, traceid=X-B3-TraceId
не работает).
Документация: http://logging.paluch.biz/examples/logback.html