Как остановить mybatis print SQL-скрипт в консоли

Я использую mybatis-3.4.6 для выполнения сценария sql с помощью ScriptRunner. Он выводит на консоль весь сценарий. Я использую slf4j для ведения журнала и включил следующие строки в logback.xml. Но это все еще печать.

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

До mybatis я использовал ibatis. Он не печатал такой сценарий.

Как мне остановить печать скрипта?

Вы пробовали mybatis.org/mybatis-3/logging.html?

Nghia Do 19.09.2018 16:08

Как говорится, сначала поищите slf4j. Но он не выберет или просто отключится. Я также проверил упомянутый вызов метода.

Darshana 20.09.2018 10:28

каков эффективный уровень для регистраторов, названных в честь пакетов, в которых находятся ваши картографы? org.mybatis из примера регистрации может вводить в заблуждение. Если вы используете картографы, скажем, com.my.app.mappers, вам необходимо установить уровень ведения журнала com.my.app.mappers на WARN.

Roman Konoval 20.09.2018 17:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
646
2

Ответы 2

Мне кажется, это 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);

Другие вопросы по теме