我正在使用mybatis-3.4.6
使用ScriptRunner
执行sql脚本。它正在将整个脚本打印到控制台。我正在使用slf4j
进行记录,并且在logback.xml
中包含了以下几行。但它仍在打印。
<logger name="org.mybatis" level="WARN" />
<logger name="java.sql" level="WARN" />
在mybatis
之前,我使用过ibatis
。它没有打印这样的脚本。
如何停止打印脚本?
答案 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);