ПОКА ОШИБКА StatusLogger Файл конфигурации Log4j 2 не найден. Использование конфигурации по умолчанию

#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 не сможет ее найти…