Я использую mybatis-3.4.6 для выполнения сценария sql с помощью ScriptRunner. Он выводит на консоль весь сценарий. Я использую slf4j для ведения журнала и включил следующие строки в logback.xml. Но это все еще печать.
<logger name = "org.mybatis" level = "WARN" />
<logger name = "java.sql" level = "WARN" />
До mybatis я использовал ibatis. Он не печатал такой сценарий.
Как мне остановить печать скрипта?
Как говорится, сначала поищите slf4j. Но он не выберет или просто отключится. Я также проверил упомянутый вызов метода.
каков эффективный уровень для регистраторов, названных в честь пакетов, в которых находятся ваши картографы? org.mybatis из примера регистрации может вводить в заблуждение. Если вы используете картографы, скажем, com.my.app.mappers, вам необходимо установить уровень ведения журнала com.my.app.mappers на WARN.




Мне кажется, это 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);
Я решил это с помощью метода ScriptRunner.setLogWriter (null):
ScriptRunner sr = new ScriptRunner(connection);
Reader reader = new BufferedReader(new FileReader(scriptFile));
sr.setLogWriter(null);
sr.runScript(reader);
Вы пробовали mybatis.org/mybatis-3/logging.html?