最近整合ssm框架时,整合log4j时,控制台不输出sql语句。查看log4j.properties的配置文件,确定没问题后,各处查资料,查找解决办法。最终在一篇博客里找到解决办法,博客地址(目前忘记了)找到后再一并贴出。
解决办法:web.xml中添加配置:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/properties/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
注意:此段代码应放在最前面,在开启监听之前。
如下图所示:
重启项目后,可以看到控制台打印的sql,如下图:
就此完美解决控制台输出问题。至于原因,有空深究。
附带:log4j.properties配置文件
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#sql show
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
来源:oschina
链接:https://my.oschina.net/u/2344371/blog/682332