Как игнорировать/высмеивать строки журнала Slf4j?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как игнорировать/высмеивать строки журнала Slf4j?

Сообщение Anonymous »


Я обновил Spring Boot с 2.5.10 до 2.5.12, и это принесло мне серьезные изменения в журнале регистрации https://github.com/spring-projects/spri ... ag/v2.5.11 Некоторые из моих модульных тестов (с использованием Mockito) прерываются из-за исключения NullPointerException, когда я передаю имитируемое исключение в строки журнала в основном коде. Например, это строка журнала, которая есть в моем основном коде, и класс помечен ломбокским @Slf4j

log.warn("Исключение произошло при выполнении чего-либо", исключение); Раньше эта строка журнала не выдавала никаких ошибок.

Моя цель здесь — не издеваться над регистратором, а игнорировать эту строку любым возможным обходным путем (даже если мне придется ее высмеивать).

Ломбок добавляет при компиляции следующее (не уверен, что насмешка здесь сработает):

private static Final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(HelloWorld.class); У меня есть обходной путь: не использовать имитируемые исключения и передавать фактическое исключение, но это лишит модульные тесты удовольствия.

Трассировка стека:

java.lang.NullPointerException в ch.qos.logback.classic.spi.ThrowableProxy.(ThrowableProxy.java:99) в ch.qos.logback.classic.spi.ThrowableProxy.(ThrowableProxy.java:62) в ch.qos.logback.classic.spi.LoggingEvent.(LoggingEvent.java:119) в ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419) в ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383) в ch.qos.logback.classic.Logger.warn(Logger.java:692) в com.example.redsdt.HelloWorld.executeInternal(HelloWorld.java:74) на com.example.redsdsdt.HelloWorldTest.testLocksOnDomain(HelloWorldTest.java:94) в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.base/java.lang.reflect.Method.invoke(Method.java:566) в org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) в org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) в org.junit.runners.model.FrameworkMethod.invokeExplosically (FrameworkMethod.java:56) в org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) в org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) в org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:54) в org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) в org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) в org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) в org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) в org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) в org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) в org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) в org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) в org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) в org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) в org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) в org.junit.runners.ParentRunner.run(ParentRunner.java:413) в org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:99) в org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:105) в org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:40) в org.mockito.junit.MockitoJUnitRunner.run(MockitoJUnitRunner.java:163) в org.junit.runner.JUnitCore.run(JUnitCore.java:137) на com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) на com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) на com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) на com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) на com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) на com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Процесс завершен с кодом выхода 255 Более того, мои модульные тесты работают с предыдущей версией библиотеки. Была проблема: во время выполнения модульных тестов в консоли выводились журналы типа WARN и ERROR (что иногда создавало большую путаницу).
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»