что является журналами NDC и как мы можем использовать его в нашем приложении и что является значением этого

что является журналами NDC и как мы можем использовать его в нашем приложении и что является значением этого...

6
задан Pedantic 6 June 2010 в 14:08
поделиться

3 ответа

Вложенные контексты диагностики зависят от потока.

Обычно используется для записи информации для каждого сеанса (если для сеанса используется один поток), поэтому вы можете регистрировать исходящего клиента, имя пользователя и т. Д. И другие сквозные атрибуты без:

  1. передача этих атрибутов через уровни вашего приложения
  2. , явно регистрируя их в каждом операторе журнала. Log4j выведет NDC, если PatternLayout настроен соответствующим образом.

См. Также Отображенные диагностические контексты Log4j.

5
ответ дан 10 December 2019 в 00:34
поделиться

NDC означает "Nested Diagnostic Contexts", это особенность log4j. Наиболее распространенное использование log4j - просто записывать в журнал материал без указания того, частью какого клиентского запроса он был, в результате чего, когда ваше приложение работает в продакшене с одновременными запросами, все сообщения журнала для всех запросов смешиваются вместе в файле журнала, и определить, кто что сделал, невозможно. NDC позволяет пометить сообщения журнала как принадлежащие определенным клиентам, чтобы вы могли различать, кто что делает, не заводя отдельные регистраторы для каждого клиента.

3
ответ дан 10 December 2019 в 00:34
поделиться

Регистратор обычно статически определен в коде, что иногда затрудняет понимание журнала.

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

Полезно, если вам нужен журнал вроде:

[request=x] a
[request=y] a
[request=x] b
[request=x] c
[request=y] b
[request=x] d
[request=y] c
[request=y] d

(Отказ от ответственности: я не помню точное форматирование)

С помощью только a, b, c, d трудно понять, какой поток делает то, что. Если вы нажмете и вытолкнете идентификатор запроса динамически, то это будет легче выполнить. Также может использоваться для других видов контекстной информации.

2
ответ дан 10 December 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: