Перейти к содержанию

Логирование

Модуль который позволяет добавить поддержку структурированных логов, конфигурации логов в hocon.

Dependency

implementation "ru.tinkoff.kora:logging-logback"
implementation "ch.qos.logback:logback-classic:1.4.5"

Modules

@KoraApp
public interface ApplicationModules extends LogbackModule { }

Description

Передать структурированные данные в запись лога можно двумя способами:

  • Через Marker:
var marker = StructuredArgument.marker("key", gen -> {
   gen.writeString("value");
});

log.info(marker, "message");
  • Через параметры:
var parameter = StructuredArgument.arg("key", gen -> {
 gen.writeString("value");
});
log.info("message", parameter);

Методы marker и arg также принимают в качестве шорткатов Long, Integer, String, Boolean и Map.

Структурные данные можно прикреплять ко всем записям в рамках контекста с помощью класса ru.tinkoff.kora.logging.common.MDC:

MDC.put("key",gen->gen.writeString("value"));

Если вы используете AsyncAppender для отправки логов, то для корректной передачи MDC параметров нужно воспользоваться ru.tinkoff.kora.logging.logback.KoraAsyncAppender, который передаст делегату ru.tinkoff.kora.logging.logback.KoraLoggingEvent, содержащий, в том числе, структурный MDC.