Log4j в Вебсфере

Недавно я взял на себя проект веб-приложения с использованием websphere и log4j, работающего под AIX. Чтобы создать среду разработки, я настроил все компоненты в Windows, используя eclipse для компиляции файла WAR и его развертывания.

Все работает нормально, за исключением того, что файл журнала не создан. Я изменил файл журнала в log4j.properties, как показано ниже, и дал всем право полного доступа к каталогу:

log4j.appender.F1.File=/abc/def/logs/admin.log

в

log4j.appender.F1.File=c:/logs/admin.log

Что еще я могу проверить?

Я создаю простой автономный testapp, который использует те же log4j.properties, и он может создать файл журнала, но когда сервлет развернут в веб-сфере, он не работает. Пожалуйста помоги! Спасибо!

3 ответа

Решение

Хорошо, я думаю, что эта статья должна вам помочь. Похоже, что WebSphere CE по умолчанию использует log4j и управляет им с помощью файла глобальных свойств. Есть раздел о том, как использовать специфичные для приложения файлы свойств.

Вот что я пытаюсь сделать для устранения подобных проблем.

  1. Включите отладку log4j, чтобы увидеть, откуда он берет файл. Вам нужно подтверждение того, какой файл выбран (поэтому включение отладки является полезным действием). Это предоставляет вам информацию о том, что log4j пытается сделать, чтобы найти файл конфигурации.

    -Dlog4j.debug = верно

  2. Я бы не стал жестко кодировать местоположение log4j в коде. Вместо этого я бы использовал log4j.configuration Системное свойство и укажите это в аргументах JVM. Таким образом, даже мне не нужно трогать мой код.

    -Dlog4j.configuration = Файл:///home/manglu/log4j.properties

Я бы использовал этот подход независимо от того, какой сервер времени выполнения я использую (будь то Tomcat или WAS CE или WAS)

Надеюсь это поможет

Я предлагаю вам использовать переменные среды, установленные на вашем сервере следующим образом:

Вы должны получить доступ к консоли администратора вашего сервера. Под пользовательскими свойствами

Server_Path=/ ABC / Защита / журналы

В вашем log4j используйте это: {$server_path}/log.txt

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

Другие вопросы по тегам