запись 2 веб-приложений в 2 разных файла - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть 2 веб-приложения, созданные из одного дерева исходных текстов в tomcat, каждое из которых использует PropertyConfigurator, загружая свои соответствующие /webapp/WEB-INF/classes/log4j.properties.

В настоящее время tomcat настроен на использование одного консольного приложения для всего контейнера, и оба приложения log4js просто записывают в консоль:

log4j.rootCategory=info, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender

Это означает, что я получаю один большой catalina.out для всего контейнера.

Я хотел бы настроить каждое из приложений log4js так, чтобы они добавляли свои собственные отдельные файлы прокрутки.

Я знаю, что могу использовать подстановку системных свойств в log4j.properties, но не являются ли системные свойства общими для виртуальной машины и, следовательно, не безопасны для потоков между двумя приложениями в контейнере?

Может кто-нибудь предложить аккуратное решение, которое позволяет мне настроить 2 приложения для регистрации в отдельных файлах, предпочтительно с контекстным именем приложения в имени файла журнала.

спасибо, стр.

1 Ответ

0 голосов
/ 07 декабря 2011

Где ваши log4j.jar и commons-logging.jar находятся в каталоге tomcat? И какую версию tomcat вы используете?

Если у вас есть одна копия этих jar-файлов внутри common / lib, то, безусловно, catalina.log будет использоваться всеми журналами, поскольку файл tomcat log4j.properties является только тем, который настраивается как для сервера, так и для веб-приложений под ним.

Предполагая, что этот сценарий действителен в вашем случае, скопируйте log4j.jar и common-logging.jar в WEB-INF / lib для обоих веб-приложений.

Для использования имени приложения в имени файла журнала, поскольку для каждого приложения используется отдельный файл log4j.properties, присвойте свои журнальные файлы именам, которые вам нравятся, в файле log4j.properties для FileAppender или RollingFileAppender.

...