如何为Tomcat设置Spring Logs[英] How to setup Spring Logs for Tomcat

本文是小编为大家收集整理的关于如何为Tomcat设置Spring Logs的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

在春季MVC上工作并且没有弹簧日志,这使得很难进行调试.我读过有关此问题的其他文章,似乎没有帮助我. log4j.properties在src文件夹中. slf4j-api-1.5.11,slf4j-log4j12-1.5.11,slf4j-simple-1.5.11,commons-logging-1.1.jar和log4j-1.2.16.jar jar在classPath中.
log4j内容是:

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

,但我在控制台上看不到任何弹簧日志.

注意:使用弹簧3.1

推荐答案

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

另外,您需要在log4j.properties中添加弹簧的记录仪,如下所示. 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依赖性需要包含类似于以下的条目(从使用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>

其他推荐答案

添加此...

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

其他推荐答案

当我将log4j.properties放在" src"文件夹时,我没有弹簧日志和消息:

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必须放置在部署后的"类"文件夹中.

本文地址:https://www.itbaoku.cn/post/1574907.html

问题描述

Working on Spring MVC and not having Spring logs has made it hard to debug. I have read few other articles on this problem and none seem to help me. log4j.properties is in src folder. slf4j-api-1.5.11, slf4j-log4j12-1.5.11, slf4j-simple-1.5.11, commons-logging-1.1.jar and log4j-1.2.16.jar jars are in the classpath.
Log4j content is:

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

But I don't see any Spring logs in my console.

Note: Using Spring 3.1

推荐答案

Remove commons-logging-1.1.jar and add jcl-over-slf4j-1.5.11.jar, as you need all logging calls to go through slf4j and then handled by log4j.

Also, you will need to add loggers for spring in log4j.properties, as indicated below. log4j.properties needs to end up in 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 dependencies need to contain entries similar to following (taken from Using SLF4J section).
Note the exclusion of commons-logging and inclusion of 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>

其他推荐答案

Add this...

log4j.appender.stdout.Target=System.out

Also change console to stdout. See example

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

其他推荐答案

When I put log4j.properties to "src" folder I have no spring logs and message:

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.

When I moved back to src/main/resources - all works fine. Seems like log4j.properties must be placed at "classes" folder after deploy.