Ведение журнала Spring Batch MDC

Я хочу знать, как регистрировать такие вещи, как Job Name и Execution ID, используя MCD в Spring Batch.

Вот код:

bootstrap.properties

в этом файле есть список элементов, которые я сейчас регистрирую, и я добавил здесь execId в качестве третьего элемента.

logging.pattern.level=%5p [%X{X-B3-TraceId:-},%X{sessionId:-},%X{execId:-},%X{program:-},%X{mainframeId:-}]
spring.application.name=mcc
spring.profiles.active=globals,local,local-override

Приложение Центра клиентов

этот файл имеет мой основной метод. Когда я вручную устанавливаю здесь поле с помощью MDC.put("execId", "12345");, я вижу это в журнале, но я не понимаю, как поместить сюда актуальную информацию, которая мне нужна.

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
public class MccApplication {

    public static void main(String[] args) {
        MDC.put("execId", "12345");
        SpringApplication.run(MccApplication.class, args);
    }

}

Буду признателен за любую информацию :) Спасибо.


person Josh    schedule 24.08.2018    source источник


Ответы (1)


Отказ от ответственности: я не знаком с spring-batch

MDC будет работать для вас, чтобы зарегистрировать имя задания и идентификатор выполнения вместе с операторами журнала, поскольку MDC имеет сходство с потоком. Поэтому, если вы поместите что-то в MDC, находясь в потоке, то это будет доступно вам (и для возврата в журнал) на протяжении всего жизненного цикла этого потока. Поэтому, если вы поместите MDC.put("execId", "12345"); в свой основной метод, он будет доступен только в основном потоке.

Имя задания и идентификатор выполнения имеют смысл только в любом дочернем потоке, который может порождаться весенним пакетом (здесь я использую дикие предположения, так как я не знаком с весенним пакетом). Поэтому добавьте MDC.put("execId", "12345"); в начальную точку вашего фактического задания, а не в метод main().

person so-random-dude    schedule 24.08.2018
comment
Спасибо за ваш ответ и совет, я попробую ваши предложения и опубликую здесь свои результаты. - person Josh; 25.08.2018
comment
кое-что интересное можно прочитать здесь: shengwangi .blogspot.com/2015/09/ - person so-random-dude; 27.08.2018
comment
Спасибо за ссылку и вклад. Теперь у меня гораздо более четкое представление о том, что делать. - person Josh; 28.08.2018
comment
@Джош Рад помочь - person so-random-dude; 28.08.2018