I created an issue for this, since is not a too easy task - I don't
want to get it lost.
Thanks ver ymuch for all the info
Cheers
Christian

On Wed, May 20, 2009 at 5:53 AM, Curt Arnold <[email protected]> wrote:
>
> On May 19, 2009, at 2:08 AM, Christian Grobmeier wrote:
>
>>> 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.
>>
>> Is there any chance to read something somewhere about this?
>
> 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.
>
>
>>
>>
>>>  I think bringing that
>>> same approach over would likely make LoggerAppenderSocket more useful.
>>>  If
>>> there is an existing receiver that depends on the current wire format,
>>> log4j
>>> compatible could be made as an option.
>>
>> I agree.
>>
>> However, having the bytesequence defined would help with testing, even
>> when we don't manage to get a spawned process in PHP (which is a bit
>> to extreme i would guess). I think a SocketMock would be enough.
>>
>> Christian
>
>
>
>
>

Reply via email to