Log4j和thymeleaf结合导致sql 日志输出不了
最近用thymeleaf模板引擎的时候,发现sql 的日志输出不了,普通ssm框架搭建没问题,能输出sql日志,可是在使用thymeleaf引擎后,就发现用不了。
现在找到一种解决方法,
导入jar包
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency>
mybatis.xml文件中加入sql输出配置。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <!-- 将日志信息输出到控制台 --> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <!-- <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> --> <!-- <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] [method:%l]%m%n"/> --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] (%c:%L)- %m%n"/><!-- 输出方法名 --> <!-- <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] [%c] -%m%n"/> --> <!-- 设置日志输出级别,开发可以设置为debug,正式上线可以用info --> <param name="Threshold" value="DEBUG"></param> </layout> </appender> <!-- 输出日志到文件 每天一个文件 --> <appender name="logfile" class="org.apache.log4j.DailyRollingFileAppender"> <param name="Threshold" value="info"></param> <!-- 设置日志信息输出文件全路径名 --> <param name="File" value="D:/log4j/logs/logFile.log" /> <!-- 设置日志以天为单位回滚一次,即产生一个新的日志文件 --> <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] (%c)- %m%n" /> </layout> </appender> <!-- 设置日志缓存,及缓存大小 和日志的异步输出 --> <appender name="async" class="org.apache.log4j.AsyncAppender"> <param name="BufferedIO" value="true"/> <param name="BufferSize" value="512"/> <appender-ref ref="stdout"/> <appender-ref ref="logfile"/> </appender> <!-- 输出日志到文件 文件大小到达指定尺寸的时候产生一个新的文件 --> <!-- 将日志信息输出到文件,但是当文件的大小达到某个阈值的时候,日志文件会自动回滚 --> <appender name="railyFile" class="org.apache.log4j.RollingFileAppender"> <!-- 设置日志信息输出文件全路径名 --> <param name="File" value="D:/log4j/logs/logFile2.log" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 <param name="Append" value="true" /> --> <!-- 设置保存备份回滚日志的最大个数 --> <param name="MaxBackupIndex" value="10" /> <!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB --> <param name="MaxFileSize" value="10MB" /> <!-- 设置日志输出的样式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 设置日志输出的格式 --> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%-5p] (%c)- %m%n" /> </layout> </appender> <!-- 设置日志缓存,及缓存大小 --> <appender name="railyFileappender" class="org.apache.log4j.AsyncAppender"> <param name="BufferSize" value="512"/> <appender-ref ref="railyFile"/> </appender> <!-- 整体设置日志的输出级别 --> <!-- 下面是打印 mybatis语句的配置,完成和thymeleaf的不兼容问题--> <logger name="com.ibatis" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.Connection" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.Statement" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.PreparedStatement" additivity="true"> <level value="DEBUG" /> </logger> <logger name="java.sql.ResultSet" additivity="true"> <level value="DEBUG" /> </logger> <root> <level value="DEBUG" /> <appender-ref ref="stdout"/> <appender-ref ref="logfile"/> <appender-ref ref="railyFile"/> </root> </log4j:configuration>