首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Log4j:没有为记录器(org.springframework.web.context.support.StandardServletEnvironment)找到任何附加程序

Log4j:没有为记录器(org.springframework.web.context.support.StandardServletEnvironment)找到任何附加程序
EN

Stack Overflow用户
提问于 2014-07-30 21:10:31
回答 2查看 10.2K关注 0票数 3

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

代码语言:javascript
运行
复制
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

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

代码语言:javascript
运行
复制
<?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>

在部署应用程序时,此消息将显示在控制台中(而不显示日志消息):

代码语言:javascript
运行
复制
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.:在我的课堂上,我也添加了这一行:

代码语言:javascript
运行
复制
static final Logger logger = LogManager.getLogger(AcessoService.class.getName());

并增加:

代码语言:javascript
运行
复制
logger.error(...);

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

更新

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

代码语言:javascript
运行
复制
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

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

代码语言:javascript
运行
复制
<?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-30 23:51:48

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

代码语言:javascript
运行
复制
<log4j:configuration debug="true"
                     xmlns:log4j="http://jakarta.apache.org/log4j/">

能帮上忙吗?

票数 1
EN

Stack Overflow用户

发布于 2014-07-30 22:50:34

您有一个名为log4j2.xml的文件(最后带有exta "2“)。默认情况下,Spring从类路径加载log4j.properties或log4j.xml。如果您想要加载不同的文件,您必须告诉Spring来获取它。下面给出了一个示例。

在你的web.xml里

代码语言:javascript
运行
复制
<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/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25047018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档