This is an automated email from the ASF dual-hosted git repository. veithen pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
The following commit(s) were added to refs/heads/master by this push: new c4a2548 AXIS2-5993: Fix TestKitLogManager c4a2548 is described below commit c4a254875bbb46742af10a12f4ca1935de7f6714 Author: Andreas Veithen <andreas.veit...@gmail.com> AuthorDate: Tue Dec 29 19:50:19 2020 +0000 AXIS2-5993: Fix TestKitLogManager The code in that class got badly broken by the changes in AXIS2-5993: - Log files are no longer closed. - The appender writes to a StringWriter instead of the intended log file, effectively blackholing log messages. - The dependency on log4j-jcl is missing, causing log messages emitted via commons-logging to be sent to java.util.logging instead of Log4j. --- modules/transport/testkit/pom.xml | 4 +++ .../transport/testkit/util/TestKitLogManager.java | 41 +++++++++++----------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/modules/transport/testkit/pom.xml b/modules/transport/testkit/pom.xml index 5072c68..8f297ab 100644 --- a/modules/transport/testkit/pom.xml +++ b/modules/transport/testkit/pom.xml @@ -90,6 +90,10 @@ <artifactId>log4j-core</artifactId> <version>2.14.0</version> </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-jcl</artifactId> + </dependency> </dependencies> <build> diff --git a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/TestKitLogManager.java b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/TestKitLogManager.java index 0aa35c1..98fc53f 100644 --- a/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/TestKitLogManager.java +++ b/modules/transport/testkit/src/main/java/org/apache/axis2/transport/testkit/util/TestKitLogManager.java @@ -21,10 +21,9 @@ package org.apache.axis2.transport.testkit.util; import java.io.File; import java.io.FileOutputStream; -import java.io.StringWriter; import java.io.IOException; import java.io.OutputStream; -import java.nio.charset.StandardCharsets; +import java.io.OutputStreamWriter; import java.util.LinkedList; import java.util.List; @@ -32,7 +31,6 @@ import org.apache.axis2.transport.testkit.tests.ManagedTestCase; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.appender.WriterAppender; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.Logger; @@ -45,23 +43,27 @@ public class TestKitLogManager { private final File logDir; private File testCaseDir; - private Appender appender; + private WriterAppender appender; private int sequence; private List<OutputStream> logs; - private static final Logger logger = - (Logger) LogManager.getLogger(TestKitLogManager.class); - - private TestKitLogManager() { logDir = new File("target" + File.separator + "testkit-logs"); } public void setTestCase(ManagedTestCase testCase) throws IOException { + Logger rootLogger = (Logger) LogManager.getRootLogger(); if (appender != null) { - ((Logger) LogManager.getRootLogger()).removeAppender(appender); + rootLogger.removeAppender(appender); + appender.stop(); appender = null; } + if (logs != null) { + for (OutputStream log : logs) { + IOUtils.closeQuietly(log); + } + logs = null; + } if (testCase == null) { testCaseDir = null; } else { @@ -73,15 +75,15 @@ public class TestKitLogManager { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); - StringWriter output = new StringWriter(); - appender = WriterAppender.newBuilder().setTarget(output).setName("debug").setLayout(PatternLayout.newBuilder().withPattern(PatternLayout.TTCC_CONVERSION_PATTERN).build()).setConfiguration(config).build(); + appender = WriterAppender.newBuilder() + .setTarget(new OutputStreamWriter(createLog("debug"))) + .setName("debug") + .setLayout(PatternLayout.newBuilder().withPattern(PatternLayout.TTCC_CONVERSION_PATTERN).build()) + .setConfiguration(config) + .build(); - if (appender != null) { - if (!appender.isStarted()) { - appender.start(); - } - config.addAppender(appender); - } + appender.start(); + rootLogger.addAppender(appender); } } @@ -91,10 +93,9 @@ public class TestKitLogManager { public synchronized OutputStream createLog(String name) throws IOException { testCaseDir.mkdirs(); - OutputStream log = new FileOutputStream(new File(testCaseDir, StringUtils.leftPad(String.valueOf(sequence++), -2, '0') + "-" + name + ".log")); + OutputStream log = new FileOutputStream( + new File(testCaseDir, StringUtils.leftPad(String.valueOf(sequence++), 2, '0') + "-" + name + ".log")); logs.add(log); return log; } - }