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 "Mika Riekkinen (JIRA)" <ji...@apache.org> on 2015/01/07 15:29:35 UTC

[jira] [Created] (LOG4J2-932) LogEvent stacktrace not visible on TcpSocketServer

Mika Riekkinen created LOG4J2-932:
-------------------------------------

             Summary: LogEvent stacktrace not visible on TcpSocketServer
                 Key: LOG4J2-932
                 URL: https://issues.apache.org/jira/browse/LOG4J2-932
             Project: Log4j 2
          Issue Type: Bug
          Components: Appenders
    Affects Versions: 2.1
            Reporter: Mika Riekkinen
            Priority: Minor


When using Socket appender to transfer LogEvents to another host, LogEvent is missing Throwable causing stacktrace not to be shown on SocketServer.

This bug has been reported earlier with id LOG4J2-886
(https://issues.apache.org/jira/browse/LOG4J2-886), which explains it.

The cause of the problem is that stored Throwable in Log4jLogEvent, Log4jLogEvent.LogEventProxy and ThrowableProxy is transient.

As it is now, using of TcpSocketServer is very limited.

I made a quick test, where those transient fields mentioned above are declared as not being transient, and this works ok. 
But this is not a proper way to fix this.

A better one could be to change these from Serializable to Externalizable, where classloading of the Throwable is controlled.
Also, it could be possible to come up with fix, where a class that actually writes the stacktrace, could use ExtendedStackTraceElement[] if the Throwable is null.

 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org