簡體   English   中英

如何在控制台中停止 mybatis 打印 SQL 腳本

[英]How to stop mybatis print SQL script in console

我正在使用mybatis-3.4.6使用ScriptRunner執行 sql 腳本。 它正在將整個腳本打印到控制台。 我正在使用slf4j進行日志記錄,並且在logback.xml包含了以下幾行。 但它仍在打印。

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

mybatis之前,我使用ibatis 它沒有像這樣打印腳本。

如何停止打印腳本?

我通過使用方法 ScriptRunner.setLogWriter(null) 解決了這個問題:

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

它對我來說似乎是一個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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM