Mybatis SQL日志打印自定义

Mybatis SQL日志打印自定义

大家都知道可以通过在配置文件中配置

<settings>
    <setting name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
</settings>

打印配置到控制台.
有时候我们仅仅想打印sql日志,那应该怎么实现呢?有的人用拦截器,我这里提供另一种可选方案
自定义一个日志打印:

public class MyLog implements Log {

    private final java.util.logging.Logger log;

    public MyLog(String clazz) {
        log = Logger.getLogger(clazz);
    }

    @Override
    public boolean isDebugEnabled() {
        return true;
    }

    @Override
    public boolean isTraceEnabled() {
        return false;
    }

    @Override
    public void error(String s, Throwable e) {
        log.log(Level.SEVERE, s, e);
    }

    @Override
    public void error(String s) {
        log.log(Level.SEVERE, s);
    }

    @Override
    public void debug(String s) {
        if(s.charAt(2) == '>' || s.charAt(0) == '<'){
            log.log(Level.INFO, s);
        }
    }

    @Override
    public void trace(String s) {
        log.log(Level.FINER, s);
    }

    @Override
    public void warn(String s) {
        log.log(Level.WARNING, s);
    }
}

配置文件更改为:

<settings>
    <setting name="logImpl" value="MyLog"/>
</settings>

完成了,是不是很简单…


版权声明:本文为strive____原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。