log4j:WARN没有为logger找到appender(org.springframework.web.context.support.StandardServletEnvironment)

时间:2014-07-30 21:10:32

标签: java spring maven logging log4j

我正在尝试在我的spring项目中配置log4j,但是在我的pom.xml中包含它之后:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

和我的类路径中的这个文件log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

部署应用程序时,此消息显示在控制台中(并且没有日志消息):

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我访问了指定的链接,但其中的信息对我没有帮助。

任何人都知道我错过了什么?

ps:在我的课程中,我也添加了这一行:

static final Logger logger = LogManager.getLogger(AcessoService.class.getName());

并添加:

logger.error(...);

在我想要的地方,但正如我所说,控制台中没有显示日志消息。

更新

现在我将文件的名称更正为log4j.xml,错误消息更改为:

log4j:WARN Continuable parsing error 2 and column 30
log4j:WARN O elemento-raiz do documento "Configuration" deve corresponder à raiz de DOCTYPE "null".
log4j:WARN Continuable parsing error 2 and column 30
log4j:WARN O documento é inválido: nenhuma gramática encontrada.
log4j:ERROR DOM element is - not a <log4j:configuration> element.

更新2

下面的文件纠正了第二个错误,但我回到了我在这里发布的第一个错误:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

2 个答案:

答案 0 :(得分:3)

你有一个名为log4j2.xml的文件(最后有一个exta&#34; 2&#34;)。默认情况下,Spring从类路径加载log4j.properties或log4j.xml。如果你想加载一个不同的文件,你必须告诉Spring选择它。下面给出了一个示例。

在您的web.xml中

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j2.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

请参阅http://javafindings.wordpress.com/2013/06/12/integrating-log4j-with-spring-3-0-mvc/

答案 1 :(得分:1)

新错误与log4j.xml文件的内容有关。 您的根配置元素没有名称空间声明:

<log4j:configuration debug="true"
                     xmlns:log4j="http://jakarta.apache.org/log4j/">

这有帮助吗?