Местоположение файла Log4j2 не определяется в Weblogic 12c

Я развертываю приложение EAR на Weblogic 12c. Я пытаюсь настроить log4j2, и размещение следующего в web.xml (веб-проекта) не работает (файл не подхватывается приложением).

<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>file:///webapps/apps/appName/log4j2.xml</param-value>
</context-param>

я получаю ошибку

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

Если я упомяну путь к файлу log4j2.xml в сценарии запуска weblogic (-Dlog4j.configurationFile=path/to/log4j2.xml), он подберет файл log4j. Как я могу заставить работать настройку <context-param>? Я запускаю weblogic из Eclipse (STS).


person user1187958    schedule 03.11.2016    source источник


Ответы (1)


Просто чтобы перепроверить: добавили ли вы зависимость log4j-web в путь к классам? Без этого параметр контекста работать не будет.

Также имейте в виду, что указанный путь file: будет разрешен относительно корня веб-контекста. По сути, он вернет результат ServletContext.getResource(путь).

Вы можете увидеть, что происходит не так, если вы установите системное свойство -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE. Это выведет внутренний журнал Log4j2 на консоль.

person Remko Popma    schedule 04.11.2016
comment
У меня есть зависимость от log4j-web. Я изменил свою конфигурацию, чтобы использовать параметр -Dlog4j.configurationFile. Я не понял ту часть, где вы сказали, что путь к файлу будет разрешен относительно корня контекста. У меня есть другие проекты (на tomcat), где я могу указать любое место на диске, и он подберет мой файл log4j. - person user1187958; 06.11.2016
comment
Я имел в виду значение contex-value, настроенное в web.xml: вы упомянули <param-value>file:///webapps/apps/appName/log4j2.xml</param-value>. Этот путь интерпретируется как относительный к корню веб-приложения. - person Remko Popma; 07.11.2016
comment
Это хорошая информация. Я не знал, что это было относительно корня контекста. Наверное, поэтому мой конфиг не подхватывался. Я приму ваш ответ, поскольку он объясняет, почему мой файл конфигурации не загружался. - person user1187958; 07.11.2016