This is an automated email from the ASF dual-hosted git repository. rgoers pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4j-server.git
commit ff1937a7986271c6d80f1e4be116105ff9824da8 Author: Mikael Ståldal <[email protected]> AuthorDate: Wed Jul 26 22:17:09 2017 +0200 Match log4j-core 2.9-SNAPSHOT --- .../log4j/server/InputStreamLogEventBridge.java | 19 +++++++++---------- .../org/apache/logging/log4j/server/JmsServer.java | 5 +++-- .../log4j/server/JsonInputStreamLogEventBridge.java | 5 ++--- .../apache/logging/log4j/server/LogEventBridge.java | 5 ++--- .../apache/logging/log4j/server/TcpSocketServer.java | 3 +++ .../apache/logging/log4j/server/UdpSocketServer.java | 3 +++ .../log4j/server/XmlInputStreamLogEventBridge.java | 4 ++-- .../log4j/server/AbstractSocketServerTest.java | 13 ++++++++++--- .../log4j/server/UdpSerializedSocketServerTest.java | 2 -- 9 files changed, 34 insertions(+), 25 deletions(-) diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/InputStreamLogEventBridge.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/InputStreamLogEventBridge.java index 68ec791..90597c9 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/InputStreamLogEventBridge.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/InputStreamLogEventBridge.java @@ -22,12 +22,10 @@ import java.nio.charset.Charset; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.LogEventListener; -import org.apache.logging.log4j.core.impl.Log4jLogEvent; +import org.apache.logging.log4j.core.parser.ParseException; +import org.apache.logging.log4j.core.parser.TextLogEventParser; import org.apache.logging.log4j.util.Strings; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectReader; - /** * Reads and logs {@link LogEvent}s from an {@link InputStream}. */ @@ -39,19 +37,20 @@ public abstract class InputStreamLogEventBridge extends AbstractLogEventBridge<I private final String eventEndMarker; - private final ObjectReader objectReader; + private final TextLogEventParser parser; - public InputStreamLogEventBridge(final ObjectMapper mapper, final int bufferSize, final Charset charset, final String eventEndMarker) { + public InputStreamLogEventBridge(final TextLogEventParser parser, final int bufferSize, final Charset charset, final String eventEndMarker) { this.bufferSize = bufferSize; this.charset = charset; this.eventEndMarker = eventEndMarker; - this.objectReader = mapper.readerFor(Log4jLogEvent.class); + this.parser = parser; } abstract protected int[] getEventIndices(final String text, int beginIndex); @Override - public void logEvents(final InputStream inputStream, final LogEventListener logEventListener) throws IOException { + public void logEvents(final InputStream inputStream, final LogEventListener logEventListener) + throws IOException, ParseException { String workingText = Strings.EMPTY; try { // Allocate buffer once @@ -96,8 +95,8 @@ public abstract class InputStreamLogEventBridge extends AbstractLogEventBridge<I } } - protected Log4jLogEvent unmarshal(final String jsonEvent) throws IOException { - return this.objectReader.readValue(jsonEvent); + protected LogEvent unmarshal(final String jsonEvent) throws ParseException { + return this.parser.parseFrom(jsonEvent); } } diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/JmsServer.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/JmsServer.java index b673c06..8bc549c 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/JmsServer.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/JmsServer.java @@ -21,6 +21,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; +import java.util.Properties; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import javax.jms.JMSException; @@ -53,9 +54,9 @@ public class JmsServer extends LogEventListener implements MessageListener, Life final String username, final String password) { final String managerName = JmsServer.class.getName() + '@' + JmsServer.class.hashCode(); - final JndiManager jndiManager = JndiManager.getDefaultManager(managerName); + final Properties jndiManager = JndiManager.createProperties("", "", "", "", "", new Properties()); jmsManager = JmsManager.getJmsManager(managerName, jndiManager, connectionFactoryBindingName, - destinationBindingName, username, password); + destinationBindingName, username, password.toCharArray(), false, 0L); } @Override diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/JsonInputStreamLogEventBridge.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/JsonInputStreamLogEventBridge.java index 6a06ae4..ae1b0df 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/JsonInputStreamLogEventBridge.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/JsonInputStreamLogEventBridge.java @@ -20,7 +20,7 @@ import java.io.InputStream; import java.nio.charset.Charset; import org.apache.logging.log4j.core.LogEvent; -import org.apache.logging.log4j.core.jackson.Log4jJsonObjectMapper; +import org.apache.logging.log4j.core.parser.JsonLogEventParser; import org.apache.logging.log4j.util.Chars; /** @@ -33,14 +33,13 @@ public class JsonInputStreamLogEventBridge extends InputStreamLogEventBridge { private static final char EVENT_START_MARKER = '{'; private static final char JSON_ESC = '\\'; private static final char JSON_STR_DELIM = Chars.DQUOTE; - private static final boolean THREAD_CONTEXT_MAP_AS_LIST = false; public JsonInputStreamLogEventBridge() { this(1024, Charset.defaultCharset()); } public JsonInputStreamLogEventBridge(final int bufferSize, final Charset charset) { - super(new Log4jJsonObjectMapper(THREAD_CONTEXT_MAP_AS_LIST, true), bufferSize, charset, + super(new JsonLogEventParser(), bufferSize, charset, String.valueOf(EVENT_END_MARKER)); } diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/LogEventBridge.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/LogEventBridge.java index 785c365..7c915fd 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/LogEventBridge.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/LogEventBridge.java @@ -21,6 +21,7 @@ import java.io.InputStream; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.LogEventListener; +import org.apache.logging.log4j.core.parser.ParseException; /** * Reads {@link LogEvent}s from the given input stream and logs them as they are discovered on the given logger. @@ -41,9 +42,8 @@ public interface LogEventBridge<T extends InputStream> { * the input stream to read * @param logEventListener * TODO - * @throws IOException */ - void logEvents(T inputStream, LogEventListener logEventListener) throws IOException; + void logEvents(T inputStream, LogEventListener logEventListener) throws IOException, ParseException; /** * Wraps the given stream if needed. @@ -51,7 +51,6 @@ public interface LogEventBridge<T extends InputStream> { * @param inputStream * the stream to wrap * @return the wrapped stream or the given stream. - * @throws IOException */ T wrapStream(InputStream inputStream) throws IOException; } diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/TcpSocketServer.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/TcpSocketServer.java index fb9d53b..4d8146b 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/TcpSocketServer.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/TcpSocketServer.java @@ -33,6 +33,7 @@ import java.util.concurrent.ConcurrentMap; import com.beust.jcommander.Parameter; import com.beust.jcommander.validators.PositiveInteger; import org.apache.logging.log4j.core.config.ConfigurationFactory; +import org.apache.logging.log4j.core.parser.ParseException; import org.apache.logging.log4j.core.util.BasicCommandLineArguments; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.core.util.Log4jThread; @@ -92,6 +93,8 @@ public class TcpSocketServer<T extends InputStream> extends AbstractSocketServer logger.error("OptionalDataException eof=" + e.eof + " length=" + e.length, e); } catch (final IOException e) { logger.error("IOException encountered while reading from socket", e); + } catch (ParseException e) { + logger.error("ParseException encountered while reading from socket", e); } if (!closed) { Closer.closeSilently(inputStream); diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/UdpSocketServer.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/UdpSocketServer.java index 8259427..a19f217 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/UdpSocketServer.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/UdpSocketServer.java @@ -27,6 +27,7 @@ import java.net.DatagramSocket; import java.util.List; import org.apache.logging.log4j.core.config.ConfigurationFactory; +import org.apache.logging.log4j.core.parser.ParseException; import org.apache.logging.log4j.core.util.BasicCommandLineArguments; /** @@ -169,6 +170,8 @@ public class UdpSocketServer<T extends InputStream> extends AbstractSocketServer return; } logger.error("Exception encountered on accept. Ignoring. Stack Trace :", e); + } catch (ParseException e) { + logger.error("Unable to parse log event", e); } } } diff --git a/log4j-server/src/main/java/org/apache/logging/log4j/server/XmlInputStreamLogEventBridge.java b/log4j-server/src/main/java/org/apache/logging/log4j/server/XmlInputStreamLogEventBridge.java index 683ae07..b042bf9 100644 --- a/log4j-server/src/main/java/org/apache/logging/log4j/server/XmlInputStreamLogEventBridge.java +++ b/log4j-server/src/main/java/org/apache/logging/log4j/server/XmlInputStreamLogEventBridge.java @@ -20,7 +20,7 @@ import java.io.InputStream; import java.nio.charset.Charset; import org.apache.logging.log4j.core.LogEvent; -import org.apache.logging.log4j.core.jackson.Log4jXmlObjectMapper; +import org.apache.logging.log4j.core.parser.XmlLogEventParser; /** * Reads and logs {@link LogEvent}s from an {@link InputStream}. @@ -36,7 +36,7 @@ public class XmlInputStreamLogEventBridge extends InputStreamLogEventBridge { } public XmlInputStreamLogEventBridge(final int bufferSize, final Charset charset) { - super(new Log4jXmlObjectMapper(), bufferSize, charset, EVENT_END); + super(new XmlLogEventParser(), bufferSize, charset, EVENT_END); } @Override diff --git a/log4j-server/src/test/java/org/apache/logging/log4j/server/AbstractSocketServerTest.java b/log4j-server/src/test/java/org/apache/logging/log4j/server/AbstractSocketServerTest.java index dfc44ea..404bbf6 100644 --- a/log4j-server/src/test/java/org/apache/logging/log4j/server/AbstractSocketServerTest.java +++ b/log4j-server/src/test/java/org/apache/logging/log4j/server/AbstractSocketServerTest.java @@ -34,6 +34,7 @@ import org.apache.logging.log4j.core.appender.ConsoleAppender; import org.apache.logging.log4j.core.appender.SocketAppender; import org.apache.logging.log4j.core.layout.JsonLayout; import org.apache.logging.log4j.core.layout.PatternLayout; +import org.apache.logging.log4j.core.layout.SerializedLayout; import org.apache.logging.log4j.core.layout.XmlLayout; import org.apache.logging.log4j.core.net.Protocol; import org.apache.logging.log4j.test.AvailablePortFinder; @@ -89,18 +90,24 @@ public abstract class AbstractSocketServerTest { .setIncludeStacktrace(true) .build(); // @formatter: on - + //return JsonLayout.createLayout(null, true, true, false, false, false, false, null, null, null, true); } protected abstract Layout<? extends Serializable> createLayout(); protected Layout<? extends Serializable> createSerializedLayout() { - return null; + return SerializedLayout.createLayout(); } protected Layout<String> createXmlLayout() { - return XmlLayout.createLayout(true, true, false, false, null, true); + return XmlLayout.newBuilder() + .setLocationInfo(true) + .setProperties(true) + .setComplete(false) + .setCompact(false) + .setIncludeStacktrace(true) + .build(); } @After diff --git a/log4j-server/src/test/java/org/apache/logging/log4j/server/UdpSerializedSocketServerTest.java b/log4j-server/src/test/java/org/apache/logging/log4j/server/UdpSerializedSocketServerTest.java index 9c806af..05b8a52 100644 --- a/log4j-server/src/test/java/org/apache/logging/log4j/server/UdpSerializedSocketServerTest.java +++ b/log4j-server/src/test/java/org/apache/logging/log4j/server/UdpSerializedSocketServerTest.java @@ -24,9 +24,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.net.Protocol; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; -@Ignore public class UdpSerializedSocketServerTest extends AbstractSocketServerTest { private static UdpSocketServer<ObjectInputStream> server;
