springboot log4j2 打印mybatis sql日志

springboot web项目用log4j2输出mybatis 调试sql日志

其中maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion> 
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

log4j2-test.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 该xml配置中,xml元素大小写不敏感 -->
<!-- status="off",log4j2把自身事件记录到控制台的配置,off表示不记录,其余的记录有trace,debug,info,warn,error,fatal -->
<!-- monitorInterval表示检测更改配置的时间,单位是秒,最小间隔为5秒,0或负数表示不检测 -->
<configuration name="test-cfg" status="off" monitorInterval="0">

	<!-- 常量引用 -->
	<properties>
		<property name="LOG_HOME">/home/log</property>
		<property name="FORMAT">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</property>
	</properties>

	<!-- appender用于接收各种日志 -->
	<appenders>
		<!-- 常见的输出到console,常用于开发环境中,默认是system_err,还有一个system_out -->
		<console name="console" target="system_out">
			<!-- appender级别的日志过滤 -->
			<!-- <thresholdFilter level="info" onMatch="accept" onMismatch="deny"/> -->
			<patternLayout pattern="${FORMAT}" />
		</console>
		<!-- 常用于开发环境,把日志记录到文件中,默认追加 -->
		<file name="file" fileName="${LOG_HOME}/test.log" append="false">
			<patternLayout pattern="${FORMAT}" />
		</file>
	</appenders>

	<!-- 接收appender -->
	<loggers>
	    <logger name="org.apache.http" level="warn" />
        <!-- Spring -->
        <logger name="org.springframework" level="WARN" />
        <!-- mybatis loggers -->
        <logger name="com.ibatis" level="DEBUG" />
        <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />
        <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />
        <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />
        <!-- sql loggers -->
        <logger name="java.sql.Connection" level="DEBUG"  additivity="true"/>
        <logger name="java.sql.Statement" level="DEBUG" additivity="true" />
        <logger name="java.sql.PreparedStatement" level="=debug,stdout"  additivity="true"/>
        <logger name="java.sql.ResultSet" level="DEBUG"  additivity="true"/>
        <!-- General Apache libraries -->
        <logger name="org.apache" level="WARN" />
        <!-- Default Shiro logging -->
        <logger name="org.apache.shiro" level="WARN" />
        <!-- Disable verbose logging -->
        <logger name="org.apache.shiro.util.ThreadContext" level="WARN" />
        <logger name="org.apache.shiro.cache.ehcache.EhCache" level="WARN" />
		<!-- 对包进行更详细的配置 -->
		<!-- additivity表示是否追加,防止重复,因为root已经接收过一次了 -->
		<logger name="cn.com.baseos" level="DEBUG" additivity="false">
			<appender-ref ref="console" />
			<appender-ref ref="file" />
		</logger>
		<!-- root logger,一般用于放置所有的appender -->
		<root level="DEBUG">
			<appender-ref ref="console" />
			<appender-ref ref="file" />
		</root>
	</loggers>

</configuration> 

很多人上面配置了还是没有打印日志那是因为

需要在mybatis-config.xml中追加一句,告诉myabtis使用log4j2输出日志

<setting name="logImpl" value="LOG4J2" />
扫描二维码关注公众号,回复: 657990 查看本文章

猜你喜欢

转载自wu1g119.iteye.com/blog/2290908