【问题标题】:Log4j appenders for spring DependencyInjectionTestExecutionListenerSpring DependencyInjectionTestExecutionListener 的 Log4j 附加程序
【发布时间】:2011-09-04 16:39:18
【问题描述】:

对于我的一个应用程序,我对 spring 3 的 log4j 和 appender 有问题。 确切的错误警告消息是“log4j:WARN No appenders could be found for logger (org.springframework.test.context.support.DependencyInjectionTestExecutionListener)。 log4j:WARN 请正确初始化log4j系统。”。

我阅读了有关使用 log4j 配置 spring 的信息,但我没有成功克服这个问题。通过 log4j 进行日志记录可以正常工作,但会显示 WARN 消息。

这是我对 log4j 和 spring 的 pom 配置 - 这是相当长的配置。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>com.springsource.slf4j.api</artifactId>
    <version>${slf4j.version}</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
    <version>${slf4j.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>com.springsource.slf4j.log4j</artifactId>
    <version>${slf4j.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${slf4j.version}</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${slf4j.version}</version>
  <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.apache.log4j</groupId>
    <artifactId>com.springsource.org.apache.log4j</artifactId>
    <version>1.2.15</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.15</version>
    <exclusions>
       <exclusion>
         <groupId>javax.mail</groupId>
         <artifactId>mail</artifactId>
       </exclusion>
       <exclusion>
         <groupId>javax.jms</groupId>
         <artifactId>jms</artifactId>
       </exclusion>
       <exclusion>
         <groupId>com.sun.jdmk</groupId>
         <artifactId>jmxtools</artifactId>
       </exclusion>
       <exclusion>
         <groupId>com.sun.jmx</groupId>
         <artifactId>jmxri</artifactId>
       </exclusion>
     </exclusions>
     <scope>runtime</scope>
</dependency>

另外,我还有一个与日志相关的日志 - 排除 spring-core 和 spring-context 的 commons-logging。

这是 web.xml 配置:

<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>classpath:META-INF/properties/log4j.properties</param-value>
</context-param>

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

这是 log4j.properties 配置:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.rootLogger=DEBUG, stdout, R
log4j.appender.R.File=application.log
log4j.appender.R.MaxFileSize=700KB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.logger.mongo=DEBUG,console

我正在寻找更多信息来源,以便找到解决该问题的方法。

【问题讨论】:

    标签: java spring logging spring-mvc log4j


    【解决方案1】:

    这是解决方案 - 感谢您的回复,有一个答案让我朝着正确的方向前进,但它似乎被作者删除了。

    解决方案: 1.将log4.properties文件从src/main/resources/META-INF/properties/log4j.properties移动到src/main/resources/log4j.properties 2.更改web.xml中的log4j配置

    <context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>classpath*:log4j.properties</param-value>
    </context-param>
    

    问题解决了:)

    【讨论】:

      【解决方案2】:

      您是否尝试将此配置行添加到 log4j.properties 中?

      log4j.logger.org.springframework=DEBUG,console
      

      【讨论】:

      • 感谢您的回答 - 是的,我添加了这一点,但警告仍然存在。我继续挖……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2021-01-24
      相关资源
      最近更新 更多