This is an automated email from the ASF dual-hosted git repository. dsoumis pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit ae8e092e17cc2e0a6fd02ee7e5bb4d21de986894 Author: Dimitris Soumis <jimsou...@gmail.com> AuthorDate: Tue Sep 9 14:12:17 2025 +0300 Tweak LogCapture logic --- .../apache/catalina/startup/TomcatBaseTest.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/test/org/apache/catalina/startup/TomcatBaseTest.java b/test/org/apache/catalina/startup/TomcatBaseTest.java index 8083bc0d03..91e2028ff1 100644 --- a/test/org/apache/catalina/startup/TomcatBaseTest.java +++ b/test/org/apache/catalina/startup/TomcatBaseTest.java @@ -954,6 +954,7 @@ public abstract class TomcatBaseTest extends LoggingBaseTest { protected final String[] loggerNames; protected final List<LogRecord> logRecords = Collections.synchronizedList(new ArrayList<>()); protected final Map<Logger, Level> previousLevelsOfLoggersMap = new IdentityHashMap<>(); + private volatile boolean installed = false; protected final Handler handler = new Handler() { @Override public void publish(LogRecord record) { @@ -975,11 +976,14 @@ public abstract class TomcatBaseTest extends LoggingBaseTest { } public void attach() { - for (String name : loggerNames) { - Logger logger = Logger.getLogger(name); - previousLevelsOfLoggersMap.put(logger, logger.getLevel()); - logger.addHandler(handler); - logger.setLevel(level); + if (!installed) { + for (String name : loggerNames) { + Logger logger = Logger.getLogger(name); + previousLevelsOfLoggersMap.put(logger, logger.getLevel()); + logger.addHandler(handler); + logger.setLevel(level); + } + installed = true; } } @@ -1029,15 +1033,18 @@ public abstract class TomcatBaseTest extends LoggingBaseTest { * CONFIGURE_START phase of a {@link Context}. */ public static class WebappLogCapture extends LogCapture implements LifecycleListener { - private volatile boolean installed = false; + private String lifecycleEvent = Lifecycle.CONFIGURE_START_EVENT; + public WebappLogCapture(String lifecycleEvent, Level level, String... loggerNames) { + this(level, loggerNames); + this.lifecycleEvent = lifecycleEvent; + } public WebappLogCapture(Level level, String... loggerNames) { super(level, loggerNames); } @Override public void lifecycleEvent(LifecycleEvent event) { - if (Lifecycle.CONFIGURE_START_EVENT.equals(event.getType()) && !installed) { - installed = true; + if (this.lifecycleEvent.equals(event.getType())) { this.attach(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org