You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2020/12/29 19:54:37 UTC
[axis-axis2-java-core] branch master updated: AXIS2-5993: Fix
TestKitLogManager
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 <an...@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;
}
-
}