如何在控制台中停止Mybatis打印SQL脚本

时间:2018-09-19 12:41:34

标签: java logback slf4j mybatis ibatis

我正在使用mybatis-3.4.6使用ScriptRunner执行sql脚本。它正在将整个脚本打印到控制台。我正在使用slf4j进行记录,并且在logback.xml中包含了以下几行。但它仍在打印。

<logger name="org.mybatis" level="WARN" />
<logger name="java.sql" level="WARN" />

mybatis之前,我使用过ibatis。它没有打印这样的脚本。

如何停止打印脚本?

2 个答案:

答案 0 :(得分:1)

我通过使用ScriptRunner.setLogWriter(null)方法解决了这个问题:

ScriptRunner sr = new ScriptRunner(connection);
Reader reader = new BufferedReader(new FileReader(scriptFile));
sr.setLogWriter(null);
sr.runScript(reader);

答案 1 :(得分:0)

在我看来,这像是System.out。因此,我做了以下更改以删除控制台日志。我不认为这是最好的解决方案。

PrintStream tmp = new PrintStream(new OutputStream() {
    @Override
    public void write(int b) throws IOException {
        // do nothing
    }
});
PrintStream console = System.out;
System.setOut(tmp);
// ScriptRunner call
System.setOut(console);