что такое журналы NDC и как мы можем использовать их в нашем приложении и каково их значение...
что такое журналы NDC и как мы можем использовать их в нашем приложении и каково их значение
Ответы (3)
Вложенные диагностические контексты специфичны для потока.
Обычно используется для записи информации для каждого сеанса (если для сеанса используется один поток), поэтому вы можете регистрировать исходного клиента, имя пользователя и т. д. и другие сквозные атрибуты без:
- передача этих атрибутов через слои вашего приложения
- явно регистрируя их в каждом операторе журнала. Log4j будет выводить NDC, если
PatternLayoutнастроен соответствующим образом.
См. также Сопоставленные диагностические контексты Log4j.
NDC расшифровывается как «вложенные диагностические контексты», это функция log4j. Чаще всего log4j используется для регистрации данных без каких-либо указаний на то, частью какого клиентского запроса они были, в результате чего, когда ваше приложение работает в производственной среде с одновременными запросами, все сообщения журнала для всех запросов перемешаны вместе в файл журнала и сказать, кто что сделал, невозможно. NDC позволяет вам помечать сообщения журнала как принадлежащие определенным клиентам, чтобы вы могли различать, кто что делает, не имея отдельных регистраторов для каждого клиента.
Logger обычно статически определяется в коде, что иногда затрудняет понимание log.
NDC позволяет динамически push параметр, который будет отображаться в каждой последующей строке журнала, выдаваемой потоком, пока он не будет popped.
Полезно, если вам нужен журнал, например:
[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 трудно понять, какой поток что делает. Если вы push и pop идентификатор запроса динамически, тогда легче следовать. Может также использоваться для других видов контекстной информации.