Mybatis log4j如何在控制台中打印sql登录?

时间:2017-01-12 11:00:14

标签: java log4j mybatis

我想在控制台中打印sql日志。但是当我尝试它时失败了。 帮帮我。

我的log4.properties

log4j.rootLogger=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
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.logger.src.main.resources.mybatis.query=DEBUG, console
log4j.logger.src.main.resources.mybatis.query.updateSessionStatus=DEBUG, console
log4j.logger.query=TRACE
log4j.logger.mybatis.query.updateSessionStatus=TRACE

我的xml文件 的src /主/资源/ MyBatis的/ Session.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--  <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"> -->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="query">

<update id="updateSessionStatus" parameterType="java.lang.String">
        UPDATE TB_SSN SET
            <if test = "onOff == 'ON'">
            SSN_STS = "ON"
            </if>
            <if test = "onOff == 'OFF'">
            SSN_STS = "OF",
            SSN_EPD_TIME = #{time}#
            </if>
        WHERE SSN_KEY = #{sessionKey}#
</update>
</mapper>

1 个答案:

答案 0 :(得分:0)

log4j.logger.query=DEBUG应该更接近事实。更常见的是log4j.logger.mapper.namespace.value=DEBUG预期的记录器名称是包名称或类名。使用src.main.resources.mybatis,您尝试提供某种文件路径,但运行时不存在src.main.resources

您可能不需要在行尾添加appender:root logger已将debug记录到stdout。 并且未定义 console appender名称,name是stdout。