logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Moley Harey <moleyha...@gmail.com>
Subject Re: Problems with log4j SimpleSocketServer connection
Date Thu, 26 Mar 2009 15:02:02 GMT
Hi Dmitry and old,

Do you know if the available SimpleSocketServer already include the
possibility of using it with a XMLSocketReceiver?
Or does log4j provide something similar to the code used in Chainsaw?

Thanks in advance,

Mh

2009/3/26 Dmitry <dmiperl@gmail.com>

> On the server side you must use XML based receiver as well.
> Non java applications (c,c++,.net,etc..) must send logging events in XML
> serialized form and get reconstructed on the server into Java objects from
> this XML.
>
> --
> Kind regards,
> Dmitry
>
> www.moonlit-software.com
>
> Moley Harey wrote:
>
>> Hi, thanks for your answers...
>>
>> I changed the appender in my log4cxx properties file to be a
>> XMLSocketAppender and now I get the following exception when trying to
>> connect to my SocketServer:
>>
>> 2009-03-26 09:35:08,528 INFO  NRTSocketServer - NRTSocketServer ::
>> Connected
>> to client at /127.0.0.1
>> 2009-03-26 09:35:08,528 INFO  NRTSocketServer - NRTSocketServer ::
>> Starting
>> new socket node.
>> 2009-03-26 09:35:08,534 ERROR org.apache.log4j.net.SocketNode - Could not
>> open ObjectInputStream to Socket[addr=/127.0.0.1
>> ,port=37049,localport=4445]
>> java.io.StreamCorruptedException: invalid stream header
>>        at
>> java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764)
>>        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277)
>>        at org.apache.log4j.net.SocketNode.<init>(SocketNode.java:55)
>>        at NRTSocketServer.main(NRTSocketServer.java:46)
>>
>> My SocketServer is based on the log4j Java class SimpleSocketServer, is
>> this
>> class able to receive XML messages sent by log4cxx using
>> XMLSocketAppender?
>> Or do I have to implement a different Java SocketServer that understand
>> these messages?
>>
>> 2009/3/25 Dmitry <dmiperl@gmail.com>
>>
>>
>>
>>> You must use XMLSocketAppender to send log from any non-Java client to
>>> Java
>>> server.
>>> Put something like this into your C++ properties file :
>>> log4j.appender.A1=org.apache.log4j.net.XMLSocketAppender
>>> log4j.appender.A1.RemoteHost=localhost
>>> log4j.appender.A1.Port=12345
>>> It should work..
>>>
>>> Kind regards,
>>> Dmitry
>>> http://www.moonlit-software.com
>>>
>>>
>>> Moley Harey wrote:
>>>
>>>
>>>
>>>> Hi folks,
>>>>
>>>> I have implemented a Java SimpleSocketServer application that is running
>>>> with log4j version 1.2, I have done a test Java class that initialize
>>>> the
>>>> logging and sends a couple of messages to the SimpleSocketServer and
>>>> works
>>>> fine, all messages sent by the test class are succesfully written in the
>>>> same log file.
>>>>
>>>> Then I have done the same with a C++ log4cxx application, updating the
>>>> log4cxx.properties file to be like this:
>>>>
>>>> log4j.rootCategory=DEBUG,stdout,A1
>>>>
>>>> log4j.appender.stdout=org.apache.log4j.ConsoleAppender
>>>> log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
>>>>
>>>> log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
>>>>
>>>> # A1 is set to be a SocketAppender sending its output to the server
>>>> running
>>>> on the remote host, port 4445
>>>> log4j.appender.A1=org.apache.log4j.net.SocketAppender
>>>> log4j.appender.A1.Port=4445
>>>> log4j.appender.A1.RemoteHost=127.0.0.1
>>>>
>>>> I have run my C++ application and what I get in my log file are just the
>>>> following messages:
>>>>
>>>> 2009-03-25 17:14:33,914 INFO  NRTSocketServer - NRTSocketServer ::
>>>> Connected
>>>> to client at /127.0.0.1
>>>> 2009-03-25 17:14:33,969 INFO  NRTSocketServer - NRTSocketServer ::
>>>> Starting
>>>> new socket node.
>>>>
>>>> And after this no debug or info message is logged, just when my C++
>>>> application has finished I get the following message:
>>>>
>>>> 2009-03-25 17:16:25,290 ERROR org.apache.log4j.net.SocketNode - Could
>>>> not
>>>> open ObjectInputStream to Socket[addr=/127.0.0.1
>>>> ,port=36965,localport=4445]
>>>> java.io.EOFException
>>>>       at
>>>>
>>>>
>>>> java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2228)
>>>>       at
>>>>
>>>>
>>>> java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2694)
>>>>       at
>>>> java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:761)
>>>>       at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277)
>>>>       at org.apache.log4j.net.SocketNode.<init>(SocketNode.java:55)
>>>>       at NRTSocketServer.main(NRTSocketServer.java:46)
>>>>
>>>> So from logging messages from Java application using log4j to Java
>>>> ServerSocket works fine, but from C++ application using log4cxx 0.10
>>>> does
>>>> not work...
>>>>
>>>> Could be the problem the type of Appender I am using? Maybe I should use
>>>> something like XMLSocketAppender or so?
>>>>
>>>> Thanks in advance,
>>>>
>>>> Mh
>>>>
>>>>
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
— Las cosas que vemos —dijo Pistorius con voz apagada— son las mismas cosas
que llevamos en nosotros.
No hay más realidad que la que tenemos dentro.  (Herman Hesse)

http://moleyharey.blogspot.com/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message