4

在 Spring MVC 上工作并且没有 Spring 日志使得调试变得困难。我已经阅读了有关此问题的其他几篇文章,但似乎都没有帮助我。 log4j.propertiessrc文件夹中。slf4j-api-1.5.11, slf4j-log4j12-1.5.11,slf4j-simple-1.5.11和jars 在类路径中commons-logging-1.1.jar。 Log4j 内容为:log4j-1.2.16.jar

log4j.rootLogger=INFO, console


# Console appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer

但我在控制台中看不到任何 Spring 日志。

注意:使用 Spring 3.1

4

3 回答 3

10

删除commons-logging-1.1.jar并添加jcl-over-slf4j-1.5.11.jar,因为您需要所有日志记录调用都通过 slf4j,然后由 log4j 处理。

此外,您需要在 log4j.properties 中为 spring 添加记录器,如下所示。log4j.properties 需要以tomcat/webapps/<application>/WEB-INF/classes.

#Spring Framework
log4j.logger.org.springframework=INFO
log4j.logger.org.springframework.oxm=INFO
log4j.logger.org.springframework.transaction=WARN

Maven 依赖项需要包含类似于以下的条目(取自Using SLF4J部分)。
注意排除commons-logging和包含jcl-over-slf4j

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>3.1.2.RELEASE</version>
  <scope>runtime</scope>
  <exclusions>
     <exclusion>
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
     </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>1.7.0</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.0</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.0</version>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.14</version>
  <scope>runtime</scope>
</dependency>
于 2013-08-12T13:34:36.270 回答
1

添加这个...

log4j.appender.stdout.Target=System.out

console改为stdout. 查看示例

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
于 2013-08-12T12:48:09.543 回答
0

当我将 log4j.properties 放入“src”文件夹时,我没有 spring 日志和消息:

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

当我搬回 src/main/resources - 一切正常。似乎 log4j.properties 必须在部署后放在“类”文件夹中。

于 2013-08-12T12:54:08.460 回答