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