Добавить значение из базы данных в сообщение журнала logback - PullRequest
0 голосов
/ 26 марта 2020

У меня есть приложение Spring Boot, которое использует logback для журналов приложений. Теперь я добавил поддержку logz.io для централизации журналов с нескольких машин в одно место. Проблема в том, что я не могу знать, какой журнал поступает с какой машины.

В базе данных приложения есть уникальный токен, уникальный для каждой машины, на которой запущено приложение. Моя идея состоит в том, чтобы предварительно добавить это значение токена к каждому сообщению журнала, чтобы я мог различить, какой клиент отправляет какие журналы.

Я могу получить доступ к значению токена с помощью метода в хранилище, который расширяет JpaRepository. Конфигурирование обратной связи выполняется через обратную регистрацию. xml

Редактировать: каждый клиент использует свою собственную базу данных H2, в которой хранится значение.

Пример сообщения, которое у меня сейчас есть:

2020-03-26 07:58:13,702 [scheduling-1] INFO n.g.service.ScheduledBotService - Test message

Быть:

UniqueToken123 2020-03-26 07:58:13,702 [scheduling-1] INFO n.g.service.ScheduledBotService - Test message

1 Ответ

1 голос
/ 26 марта 2020

Я пытаюсь Контекст контекста в log4j2 , и мне кажется, это работает.

Тестовый код

public class AppTest {

    private Logger logger = LogManager.getLogger(AppTest.class);

    @Test
    public void testMaxFromIntegerList(){

        String uniqueToken = getTokenFromJpa();

        ThreadContext.put("uniqueToken", uniqueToken); 
        logger.info("Message Set uniqueToken");

        //remove after using
        ThreadContext.remove("uniqueToken");
        logger.info("Message Clear uniqueToken");
    }

    // dummy code.
    private String getTokenFromJpa() {
        return "UniqueToken123";
    }

}

Log4j2 Config.
Обратите внимание , что в вашем PatternLayout используйте % X {ключ} для включения указанного ключа.

appender.rolling.layout.pattern = %X{uniqueToken} %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Содержимое в файле журнала.

UniqueToken123 2020-03-26 18:18:56 INFO  AppTest:30 - Message Set uniqueToken
 2020-03-26 18:18:56 INFO  AppTest:33 - Message Clear uniqueToken

Вы можете узнать больше о контексте контекста из здесь

Надеюсь, это поможет.

...