#maven #log4j2 #tomcat9
#maven #log4j2 #tomcat9
Вопрос:
Я настраиваю новый проект с Spring MVC и не могу настроить Log4j2, я получаю ту же ошибку, что и многие просили о помощи.
ОШИБКА StatusLogger Файл конфигурации Log4j 2 не найден. Использование конфигурации по умолчанию…
Инструменты и библиотеки:
- Eclipse Photon
- Spring MVC 5.1.6
- Slf4j 1.7.26
- Log4j2 2.11.2
- Maven (из Eclipse)
pom.xml
...
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.11.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jcl -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.11.2</version>
</dependency>
...
Расположение файлов конфигурации в src
/src/com/mypackage/myproject/resorces/
where I tried to put a log4j2-test.xml file and/or a log4j2.properties, none of them worked
Просмотр каталога развертывания Tomcat:
…/org.eclipse.wst.server.core/tmp0/wtpwebapps/MonitorManagement/WEB-INF/classes/com/mypackage/myproject/resources
Я могу найти оба ресурса.
Как log4j2 не может их найти, даже если ресурсы фактически развернуты?
РЕДАКТИРОВАТЬ: он работает, помещая ресурсы непосредственно в папку src, может ли это быть хорошим способом?
Заранее спасибо
Ответ №1:
Log4j просматривает корневую папку в пути к классу.
В вашей IDE вы можете поместить log4j2.xml
файл под /src
и (возможно) под /resources
.
Комментарии:
1. Я всегда использовал для размещения такого рода ресурсов в «com.example.myproject.resources», это была плохая практика?
2. Log4j 2 просматривает корневой каталог classpath. Если вы поместите log4j2.xml конфигурация в другом каталоге / пакете, Log4j не сможет ее найти…