Я обновляю версию log4j для веб-приложения, работающего на Tomcat 8. Я обновляю версию 1.2.12 до последней версии 2.11.1.
Приложение использует Maven. Поэтому я добавил в свое приложение следующие зависимости pom.xml
(версия управляется в родительском pom):
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
Я удалил старый файл конфигурации log4j.properties
и заменил его новым log4j2.xml
файлом в папке src/main/resources
(см. Ниже содержимое моего файла log4j2).
Когда я запускаю напрямую функцию main
, журналы правильно записываются в консоли и в файле. Однако, когда я развертываю приложение на Tomcat и запускаю его, журнал не записывается.
Я проверил WAR моего приложения, и обе библиотеки находятся в папке WEB-INF/lib
.
Я также протестировал добавление исключений в log4j-1 ** во внешние библиотеки, которые зависят от него, но ничего не изменилось ...
У кого-то уже была такая же проблема, и как вы ее исправили?
С уважением,
Матье
PS: содержимое моего файла log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status=WARN strict="true">
<Properties>
<Property name="pattern">%d [%t] (%F:%L) %x %-5p [%c{1}] %m%n</Property>
<Property name="filePath">C:/temp/logs/my_app/my_app.log</Property>
</Properties>
<Appenders>
<Appender type="Console" name="STDOUT">
<Layout type="PatternLayout" pattern="${pattern}"/>
</Appender>
<Appender type="RollingFile" name="FILE" fileName="${filePath}" filePattern="${filePath}.%i">
<Layout type="PatternLayout" pattern="${pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="500KB"/>
</Policies>
<DefaultRolloverStrategy max="1"/>
</Appender>
</Appenders>
<Loggers>
<Logger name="my.package.debug" level="DEBUG" additivity="false">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="FILE"/>
</Logger>
<Root level="WARN">
<AppenderRef ref="STDOUT"/>
<AppenderRef ref="FILE"/>
</Root>
</Loggers>
</Configuration>