Я хочу знать, как регистрировать такие вещи, как 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
Приложение MCC
в этом файле есть мой основной метод. Когда я вручную устанавливаю здесь поле с помощью 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);
}
}
Буду признателен за любое понимание :) Спасибо.
Отказ от ответственности: Я не знаком с Spring-Batch
MDC будет работать для вас, чтобы регистрировать имя задания и идентификатор выполнения вместе с операторами журнала, потому что MDC имеет сходство потоков. Поэтому, если вы поместите что-то в MDC, находясь в потоке, это будет доступно вам (и для входа в систему) на протяжении всего жизненного цикла этого потока. Поэтому, если вы поместите MDC.put("execId", "12345"); в свой основной метод, он будет доступен только в основном потоке.
Имя задания и идентификатор выполнения имеют смысл только в любом дочернем потоке, который может порождать пакет Spring (здесь я использую дикие предположения, поскольку я не знаком с пакетом Spring). Поэтому добавьте MDC.put("execId", "12345"); в начальную точку вашего фактического задания, а не в метод main ().
немного интересного читайте здесь: shengwangi.blogspot.com/2015/09/…
Спасибо за ссылку и вклад. У меня гораздо более четкое представление о том, что мне теперь делать.
@Josh рад помочь
Спасибо за ваш ответ и совет, я попробую ваши предложения и опубликую здесь свои результаты