Log4j和thymeleaf结合导致sql 日志输出不了

Posted 命运的绯色结局

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

  

以上是关于Log4j和thymeleaf结合导致sql 日志输出不了的主要内容,如果未能解决你的问题,请参考以下文章

mybatis结合log4j打印SQL日志

ibatis配置log4j输出sql日志信息

如何将 log4j 每日日志轮换与基于文件大小的轮换和最大备份相结合?

springboot集成log4j + sql打印日志

log4j不输出日志

log4j并发打印日志导致线程Block问题排查记录