|
18 | 18 | import ch.qos.logback.classic.Level; |
19 | 19 | import ch.qos.logback.classic.Logger; |
20 | 20 | import ch.qos.logback.classic.spi.ILoggingEvent; |
21 | | -import ch.qos.logback.core.Appender; |
22 | 21 | import ch.qos.logback.core.ConsoleAppender; |
23 | 22 | import ch.qos.logback.core.filter.Filter; |
24 | 23 | import nl.altindag.log.appender.InMemoryAppender; |
|
30 | 29 |
|
31 | 30 | import java.util.Collections; |
32 | 31 | import java.util.HashMap; |
33 | | -import java.util.Iterator; |
34 | 32 | import java.util.List; |
35 | 33 | import java.util.Map; |
36 | 34 | import java.util.Optional; |
@@ -59,39 +57,10 @@ public final class LogCaptor implements AutoCloseable { |
59 | 57 | private LogCaptor(String loggerName) { |
60 | 58 | logger = LogbackUtils.getLogger(loggerName); |
61 | 59 | inMemoryAppender = AppenderUtils.configureInMemoryAppender(logger, eventsCollector); |
| 60 | + consoleAppender = AppenderUtils.configureConsoleAppender(logger); |
62 | 61 |
|
63 | 62 | JavaUtilLoggingLoggerUtils.redirectToSlf4j(loggerName); |
64 | 63 | logLevelContainer.putIfAbsent(logger.getName(), logger.getEffectiveLevel()); |
65 | | - |
66 | | - configureConsoleAppender(loggerName); |
67 | | - } |
68 | | - |
69 | | - private void configureConsoleAppender(String loggerName) { |
70 | | - if (!ROOT_LOGGER_NAME.equals(loggerName)) { |
71 | | - logger.setAdditive(false); |
72 | | - } |
73 | | - |
74 | | - consoleAppender = createConsoleAppender(); |
75 | | - if (!ROOT_LOGGER_NAME.equals(loggerName)) { |
76 | | - boolean containsRootConsoleAppender = false; |
77 | | - Iterator<Appender<ILoggingEvent>> rootAppenders = getRootLogger().iteratorForAppenders(); |
78 | | - while (rootAppenders.hasNext()) { |
79 | | - if (rootAppenders.next() instanceof ConsoleAppender) { |
80 | | - containsRootConsoleAppender = true; |
81 | | - } |
82 | | - } |
83 | | - |
84 | | - if (containsRootConsoleAppender) { |
85 | | - logger.addAppender(consoleAppender); |
86 | | - } |
87 | | - } |
88 | | - } |
89 | | - |
90 | | - private ConsoleAppender<ILoggingEvent> createConsoleAppender() { |
91 | | - return Optional.ofNullable(consoleAppender) |
92 | | - .orElseGet(() -> AppenderUtils.getConsoleAppender(getRootLogger()) |
93 | | - .orElseGet(() -> AppenderUtils.getConsoleAppender(logger) |
94 | | - .orElseGet(() -> AppenderUtils.createConsoleAppender(logger.getLoggerContext())))); |
95 | 64 | } |
96 | 65 |
|
97 | 66 | /** |
@@ -282,7 +251,7 @@ public void reconfigure() { |
282 | 251 | StreamSupport.stream(Spliterators.spliteratorUnknownSize(logger.iteratorForAppenders(), Spliterator.ORDERED), false) |
283 | 252 | .forEach(logger::detachAppender); |
284 | 253 |
|
285 | | - configureConsoleAppender(logger.getName()); |
| 254 | + consoleAppender = AppenderUtils.configureConsoleAppender(logger); |
286 | 255 | logger.addAppender(inMemoryAppender); |
287 | 256 | logger.addAppender(consoleAppender); |
288 | 257 | inMemoryAppender.start(); |
|
0 commit comments