2016-05-20 4 views
4

У меня есть простой проект java (maven). Что создает банку, и мы выполняем основной метод. Но когда я бегу mvn clean test на проекте я получаю строку журнала из log4j говоряПочему Log4j думает, что мой проект запущен в среде Servlet

INFO Log4j appears to be running in a Servlet environment, but there's no log4j-web module available. If you want better web container support, please add the log4j-web JAR to your web archive or server lib directory. 

Файл log4j2.xml в src/main/resources/log4j2.xml.

Любые идеи, что происходит?

+0

источник этой ошибки находится здесь https://logging.apache.org/log4j/2.0/log4j-core/apidocs/src-html/org/apache/logging/log4j/core/lookup/Interpolator.html –

ответ

3

Если у вас есть servlet-api Jar в вашем пути к классу, Log4j будет думать, что вы работаете в контейнере Servlet. В частности, он ищет наличие javax.servlet.ServletContext. Если ваше приложение не запущено в контейнере Servlet, вам действительно не понадобится этот Jar.

0

Равным образом, если вы говорите, что нагрузки в рамках теста JUnit и хотите, чтобы устранить ошибку, то вы всегда можете включить этот файл как так:

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-web</artifactId> 
    <version>2.6.2</version> 
    <scope>test</scope> 
</dependency> 

Примечание объем был установлен в test, поэтому файл не будет включен в любой артефакт сборки.

Также обратите внимание, что эта «ошибка» на самом деле просто установлена ​​на уровне «информация», поэтому log4j продолжит поддержку без веб-сайта.

Смежные вопросы