You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by "Christian Grobmeier (JIRA)" <ji...@apache.org> on 2009/05/25 17:56:46 UTC

[jira] Created: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Create SocketAppender Wireformat compatible to Chainsaw
-------------------------------------------------------

                 Key: LOG4PHP-48
                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
             Project: Log4php
          Issue Type: Improvement
          Components: Code
            Reporter: Christian Grobmeier
             Fix For: 2.0


Curt Arnold  to Log4PHP Mailinglist
        I haven't looked at this, but I'm guessing that its wire format is not
        compatible with Chainsaw and log4j since they used their easiest
        implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
        but it was dependent on the encoding, sizeof(int) and endianess so you had
        to match senders and receivers.  In the current log4cxx, I've mimicked a
        valid Java serialization byte sequence and it can interact with Chainsaw and
        other tools that consume log4j serialized events.

Christian Grobmeier wrote:
    Is there any chance to read something somewhere about this?


Curt Arnold  to Log4PHP Mailinglist
Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).

The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.

The applicable log4cxx code is:

https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)

and to a lesser degree:

https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp

log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Posted by "scott deboy (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LOG4PHP-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755750#action_12755750 ] 

scott deboy edited comment on LOG4PHP-48 at 9/15/09 3:34 PM:
-------------------------------------------------------------

log4j provides a number of receivers (and appenders) that support XML-formatted content.

Chainsaw uses these receivers, so you just have to configure Chainsaw with the correct receiver.  See XMLSocketReceiver, UDPReceiver and MulticastReceiver.  

You can also use Chainsaw to load regular text files, load events out of a database and load xml files.  XML-based content can either conform to log4j's dtd or java.util.logging's DTD.  

Note, these are xml fragments, not xml documents, that are loaded.  For an example, start chainsaw, go to the chainsaw-log tab and choose file-save as and save the content (formatted as xml).  note, you can also load this xml content via file/load log4j file.

      was (Author: sdeboy@apache.org):
    Chainsaw already supports this capability - see XMLSocketReceiver, UDPReceiver and MulticastReceiver.  You can also use Chainsaw to load regular text files, load events out of a database and load xml files.  XML-based content can either conform to log4j's dtd or java.util.logging's DTD.  Note, these are xml fragments, not xml documents, that are loaded.  For an example, start chainsaw, go to the chainsaw-log tab and choose file-save as and save the content (formatted as xml).  note, you can also load this xml content via file/load log4j file.
  
> Create SocketAppender Wireformat compatible to Chainsaw
> -------------------------------------------------------
>
>                 Key: LOG4PHP-48
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>            Reporter: Christian Grobmeier
>             Fix For: 2.1
>
>
> Curt Arnold  to Log4PHP Mailinglist
>         I haven't looked at this, but I'm guessing that its wire format is not
>         compatible with Chainsaw and log4j since they used their easiest
>         implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
>         but it was dependent on the encoding, sizeof(int) and endianess so you had
>         to match senders and receivers.  In the current log4cxx, I've mimicked a
>         valid Java serialization byte sequence and it can interact with Chainsaw and
>         other tools that consume log4j serialized events.
> Christian Grobmeier wrote:
>     Is there any chance to read something somewhere about this?
> Curt Arnold  to Log4PHP Mailinglist
> Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).
> The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.
> The applicable log4cxx code is:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)
> and to a lesser degree:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp
> log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Posted by "scott deboy (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LOG4PHP-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755750#action_12755750 ] 

scott deboy commented on LOG4PHP-48:
------------------------------------

Chainsaw already supports this capability - see XMLSocketReceiver, UDPReceiver and MulticastReceiver.  You can also use Chainsaw to load regular text files, load events out of a database and load xml files.  XML-based content can either conform to log4j's dtd or java.util.logging's DTD.  Note, these are xml fragments, not xml documents, that are loaded.  For an example, start chainsaw, go to the chainsaw-log tab and choose file-save as and save the content (formatted as xml).  note, you can also load this xml content via file/load log4j file.

> Create SocketAppender Wireformat compatible to Chainsaw
> -------------------------------------------------------
>
>                 Key: LOG4PHP-48
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>            Reporter: Christian Grobmeier
>             Fix For: 2.1
>
>
> Curt Arnold  to Log4PHP Mailinglist
>         I haven't looked at this, but I'm guessing that its wire format is not
>         compatible with Chainsaw and log4j since they used their easiest
>         implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
>         but it was dependent on the encoding, sizeof(int) and endianess so you had
>         to match senders and receivers.  In the current log4cxx, I've mimicked a
>         valid Java serialization byte sequence and it can interact with Chainsaw and
>         other tools that consume log4j serialized events.
> Christian Grobmeier wrote:
>     Is there any chance to read something somewhere about this?
> Curt Arnold  to Log4PHP Mailinglist
> Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).
> The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.
> The applicable log4cxx code is:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)
> and to a lesser degree:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp
> log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Posted by "Christian Grobmeier (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LOG4PHP-48?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Grobmeier updated LOG4PHP-48:
---------------------------------------

    Affects Version/s: 2.0
        Fix Version/s:     (was: 2.1)
                       2.2

> Create SocketAppender Wireformat compatible to Chainsaw
> -------------------------------------------------------
>
>                 Key: LOG4PHP-48
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>    Affects Versions: 2.0
>            Reporter: Christian Grobmeier
>             Fix For: 2.2
>
>
> Curt Arnold  to Log4PHP Mailinglist
>         I haven't looked at this, but I'm guessing that its wire format is not
>         compatible with Chainsaw and log4j since they used their easiest
>         implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
>         but it was dependent on the encoding, sizeof(int) and endianess so you had
>         to match senders and receivers.  In the current log4cxx, I've mimicked a
>         valid Java serialization byte sequence and it can interact with Chainsaw and
>         other tools that consume log4j serialized events.
> Christian Grobmeier wrote:
>     Is there any chance to read something somewhere about this?
> Curt Arnold  to Log4PHP Mailinglist
> Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).
> The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.
> The applicable log4cxx code is:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)
> and to a lesser degree:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp
> log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Posted by "Christian Grobmeier (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LOG4PHP-48?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Grobmeier updated LOG4PHP-48:
---------------------------------------

    Fix Version/s:     (was: 2.0)
                   2.1

> Create SocketAppender Wireformat compatible to Chainsaw
> -------------------------------------------------------
>
>                 Key: LOG4PHP-48
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>            Reporter: Christian Grobmeier
>             Fix For: 2.1
>
>
> Curt Arnold  to Log4PHP Mailinglist
>         I haven't looked at this, but I'm guessing that its wire format is not
>         compatible with Chainsaw and log4j since they used their easiest
>         implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
>         but it was dependent on the encoding, sizeof(int) and endianess so you had
>         to match senders and receivers.  In the current log4cxx, I've mimicked a
>         valid Java serialization byte sequence and it can interact with Chainsaw and
>         other tools that consume log4j serialized events.
> Christian Grobmeier wrote:
>     Is there any chance to read something somewhere about this?
> Curt Arnold  to Log4PHP Mailinglist
> Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).
> The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.
> The applicable log4cxx code is:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)
> and to a lesser degree:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp
> log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (LOG4PHP-48) Create SocketAppender Wireformat compatible to Chainsaw

Posted by "Christian Hammers (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/LOG4PHP-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12755707#action_12755707 ] 

Christian Hammers commented on LOG4PHP-48:
------------------------------------------

Trying to emulate a binary format seems to be a bad idea. Maybe you can convince the chainsaw people to accept a patch that reads the data from an XML stream or out of a database?

> Create SocketAppender Wireformat compatible to Chainsaw
> -------------------------------------------------------
>
>                 Key: LOG4PHP-48
>                 URL: https://issues.apache.org/jira/browse/LOG4PHP-48
>             Project: Log4php
>          Issue Type: Improvement
>          Components: Code
>            Reporter: Christian Grobmeier
>             Fix For: 2.1
>
>
> Curt Arnold  to Log4PHP Mailinglist
>         I haven't looked at this, but I'm guessing that its wire format is not
>         compatible with Chainsaw and log4j since they used their easiest
>         implementation (Java serialization).  log4cxx 0.9.7 had its own wire format,
>         but it was dependent on the encoding, sizeof(int) and endianess so you had
>         to match senders and receivers.  In the current log4cxx, I've mimicked a
>         valid Java serialization byte sequence and it can interact with Chainsaw and
>         other tools that consume log4j serialized events.
> Christian Grobmeier wrote:
>     Is there any chance to read something somewhere about this?
> Curt Arnold  to Log4PHP Mailinglist
> Some dissection of the wire format appears in https://issues.apache.org/jira/browse/LOGCXX-7.  The file names are the comparison files from the unit tests (https://svn.apache.org/repos/asf/logging/log4j/trunk/tests/witness/serialization).
> The Java serialization spec is here: http://java.sun.com/javase/6/docs/platform/serialization/spec/protocol.html.  That plus the log4j source code defines the wire format that log4j writes and Chainsaw consumes.
> The applicable log4cxx code is:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/objectoutputstream.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/loggingevent.cpp (the last two methods particularly)
> and to a lesser degree:
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappenderskeleton.cpp
> https://svn.apache.org/repos/asf/logging/log4cxx/trunk/src/main/cpp/socketappender.cpp
> log4j and log4cxx both have serialization tests in their unit tests.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.