You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Bryan Hsueh (JIRA)" <ji...@apache.org> on 2014/04/30 04:28:15 UTC
[jira] [Created] (LOG4J2-625) Serialization error with
SocketAppender and Asynch Logger
Bryan Hsueh created LOG4J2-625:
----------------------------------
Summary: Serialization error with SocketAppender and Asynch Logger
Key: LOG4J2-625
URL: https://issues.apache.org/jira/browse/LOG4J2-625
Project: Log4j 2
Issue Type: Question
Components: Appenders
Affects Versions: 2.0-rc1
Environment: Ubuntu 12.04, Java 7
Reporter: Bryan Hsueh
I'm testing a simple SocketAppender, which works fine until I switch to asynchronous loggers. Once I turn on async logging, I get:
2014-04-29 21:17:26,029 ERROR Serialization of LogEvent failed. java.io.NotSerializableException: org.apache.logging.log4j.core.Logger$PrivateConfig
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.logging.log4j.core.layout.SerializedLayout.toByteArray(SerializedLayout.java:64)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:406)
at org.apache.logging.log4j.core.Logger$PrivateConfig.logEvent(Logger.java:275)
at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:289)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:99)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:43)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:28)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
My client is configured with:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="MyConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS}{EST} %-5level- %msg%n"/>
</Console>
<Socket name="MySocket" host="localhost" port="8888">
<SerializedLayout />
</Socket>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="MyConsole"/>
<AppenderRef ref="MySocket"/>
</Root>
</Loggers>
</Configuration>
My server is configured with:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="MyConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS}{EST} %-5level- %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="MyConsole"/>
</Root>
</Loggers>
</Configuration>
The client just does a LogManager.getLogger().info("{}", "hello").
The server just creates a SocketServer:
SocketServer server = new SocketServer(8888);
server.run();
All works fine until I add this into the client:
System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
Am I missing something? Please advise.
Thanks
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org