У нас есть пакетное приложение weblogic, которое обрабатывает несколько запросов от потребителей одновременно. Мы используем log4j для регистрации пупок. Сейчас мы входим в один файл журнала для нескольких запросов. Будет утомительно отлаживать проблему для данного запроса, так как для всех запросов журналы находятся в одном файле.Log4j: Один файл журнала за запрос
Таким образом, план состоит в том, чтобы иметь один файл журнала за запрос. Пользователь отправляет идентификатор запроса, для которого должна выполняться обработка. Теперь на самом деле может быть множество потребителей, отправляющих идентификаторы запросов в наше приложение. Поэтому вопрос заключается в том, как сегрегировать файлы журнала на основе запроса.
Мы не можем начинать & каждый раз останавливать производственный сервер, чтобы исключить возможность использования переопределенного файла с отметкой времени или идентификатором запроса. Это то, что описано в следующей статье: http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
Я также попытался играть с этими альтернативами:
http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html
http://www.mail-archive.com/[email protected]/msg05099.html
Такой подход дает желаемых результатов, но он не работает правильно, если одновременно отправляется несколько запросов. Из-за некоторых проблем с параллелизмом журналы появляются здесь и там.
Я ожидаю от вас помощи. Заранее спасибо ....
@eqbridges Вы использовали NDC в log4j? Я получил это от log4j API ... Вложенный диагностический контекст, или, например, NDC - инструмент для различения чередующихся журнальных выходных данных из разных источников. Выход журнала обычно чередуется, когда сервер обрабатывает несколько клиентов одновременно. Выход из чередующегося журнала может по-прежнему иметь смысл, если каждая запись журнала из разных контекстов имела отличительный штамп. Именно здесь играют НДЦ. –
Я использовал NDC в прошлом. Это действительно правильное решение того, что вы пытаетесь сделать. Вы просто царапаете поверхность проблем, с которыми вы столкнетесь, если попытаетесь сделать отдельный файл журнала для каждого запроса. –