Scott, now is working fine, thanks a lot for your quick responses! regards,
Mh 2009/3/26 Scott Deboy <[email protected]> > You have to add the appender to your root logger.. > > <root> > <level value="debug"/> > <appender-ref ref="RollingAppender"/> > </root> > > Scott > > On Thu, Mar 26, 2009 at 10:51 AM, Moley Harey <[email protected]> > wrote: > > > Hi againScott, sorry to disturb you with this... > > > > I have added the appender in my Log4j config file and now it looks like: > > > > <?xml version="1.0" encoding="UTF-8" ?> > > <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" > > "log4j.dtd"> > > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > > debug="false"> > > > > <plugin name="XmlSocketReceiver" > > class="org.apache.log4j.net.XMLSocketReceiver"> > > <param name="active" value="false"/> > > <param name="decoder" value="org.apache.log4j.xml.XMLDecoder"/> > > <param name="name" value="NRTPXmlSocketReceiver" /> > > <param name="port" value="4445" /> > > </plugin> > > > > <appender name="RollingAppender" > > class="org.apache.log4j.RollingFileAppender"> > > <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/> > > <param name="File" value="/data/logs/chainsaw.log"/> > > <param name="Append" value="false"/> > > <param name="MaxFileSize" value="20000KB"/> > > <param name="MaxBackupIndex" value="400"/> > > <layout class="org.apache.log4j.PatternLayout"> > > <param name="ConversionPattern" value="%d | %-5r | %-5p | %c | > %t:%x > > | %m%n"/> > > </layout> > > </appender> > > > > <root> > > <level value="debug"/> > > </root> > > </log4j:configuration> > > > > When I start Chainsaw, the log file chainsaw.log file is created but once > > my > > application is sending messages and they get displayed in the log file > > nothing is saved :S > > > > Do I have to add anything else? The syntax is correct for the appender? I > > have followed Log4j conventions... > > > > 2009/3/26 Scott Deboy <[email protected]> > > > > > Correct - you can add appender definitions to the same Chainsaw > > > configuration file that contains the receiver definition, and the > > appenders > > > will process the events received by Chainsaw. > > > > > > Scott > > > > > > On Thu, Mar 26, 2009 at 10:18 AM, Moley Harey <[email protected]> > > > wrote: > > > > > > > Hi Scott, > > > > > > > > 2009/3/26 Scott Deboy <[email protected]> > > > > > > > > > You can include in Chainsaw's configuration any appenders you'd > like, > > > > which > > > > > will cause any events received by the receivers to be propagated to > > the > > > > > appenders automatically. > > > > > > > > > > > > How can I do that? > > > > What I am doing now is to launch Chainsaw and when I am prompted at > the > > > > beginning that no receivers have been defined I select the option > "Let > > me > > > > search for a configuration file" and then load my config file that > > > contains > > > > the following code to define my own XmlSocketReceiver: > > > > > > > > <?xml version="1.0" encoding="UTF-8" ?> > > > > <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j > Configuration//EN" > > > > "log4j.dtd"> > > > > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > > > > debug="false"> > > > > > > > > <plugin name="XmlSocketReceiver" > > > > class="org.apache.log4j.net.XMLSocketReceiver"> > > > > <param name="active" value="false"/> > > > > <param name="decoder" value="org.apache.log4j.xml.XMLDecoder"/> > > > > <param name="name" value="NRTPXmlSocketReceiver" /> > > > > <param name="port" value="4445" /> > > > > </plugin> > > > > > > > > <root> > > > > <level value="debug"/> > > > > </root> > > > > </log4j:configuration> > > > > > > > > What you say is that is possible to define in that configuration file > > too > > > > one appender that redirects all messages that the XmlSocketReceiver > is > > > > reading and the display is showing to a text log file in the same way > > is > > > > done usually in a log4j properties file with a RollingFileAppender > for > > > > example? > > > > > > > > Or do I have to define this appender in a separate file and load it > too > > > in > > > > Chainsaw? > > > > > > > > > > > > > > > > > > > You can also save logging events as XML in Chainsaw via the file > menu > > > > > (note, > > > > > whatever events are displayed are saved, so you can apply filters > if > > > > you'd > > > > > like to only save relevant messages). > > > > > > > > > > Scott > > > > > > > > > > On Thu, Mar 26, 2009 at 9:31 AM, Moley Harey <[email protected] > > > > > > wrote: > > > > > > > > > > > Hi again, > > > > > > > > > > > > I have done the following test and is working fine: > > > > > > > > > > > > 1. Update my log4cxx.properties file to send all messages through > a > > > > > > XmlSocketAppender like this: > > > > > > > > > > > > log4j.appender.A1=org.apache.log4j.net.XmlSocketAppender > > > > > > log4j.appender.A1.Port=4560 > > > > > > log4j.appender.A1.RemoteHost=127.0.0.1 > > > > > > > > > > > > 2. Launch Chainsaw with teh following configuration file that > > > specifies > > > > > it > > > > > > should be using an XmlSocketReceived like this: > > > > > > > > > > > > <?xml version="1.0" encoding="UTF-8" ?> > > > > > > <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j > > > Configuration//EN" > > > > > > "log4j.dtd"> > > > > > > <log4j:configuration xmlns:log4j=" > http://jakarta.apache.org/log4j/ > > " > > > > > > debug="false"> > > > > > > > > > > > > <plugin name="XmlSocketReceiver" > > > > > > class="org.apache.log4j.net.XMLSocketReceiver"> > > > > > > <param name="active" value="false"/> > > > > > > <param name="decoder" > value="org.apache.log4j.xml.XMLDecoder"/> > > > > > > <param name="name" value="MyXmlSocketReceiver" /> > > > > > > <param name="port" value="4560" /> > > > > > > </plugin> > > > > > > > > > > > > <root> > > > > > > <level value="debug"/> > > > > > > </root> > > > > > > </log4j:configuration> > > > > > > > > > > > > This is working OK, Chainsaw registers without problem the new > > > receiver > > > > > > "MyXmlSocketReceiver" and log messages sent by my C++ application > > are > > > > > > correctly displayed, so clearly the problem was in the > > > > SimpleSocketServer > > > > > > that I used. > > > > > > > > > > > > One question, what I initially wanted was to write in a single > log > > > file > > > > > all > > > > > > those messages, but now that Chainsaw allows me to display and > > > include > > > > > the > > > > > > SocketServer that understands "XmlSocket" formatted messages I > was > > > > > thinking > > > > > > adding to Chain saw code the feature to write in a single log > file > > > and > > > > I > > > > > > would have all I need plus a nice display... > > > > > > > > > > > > Do you think this is feasible? > > > > > > Does Chainsaw bring the feature not only to display messages but > to > > > > save > > > > > > them into a log file? > > > > > > > > > > > > Thanks in advance, > > > > > > > > > > > > Mh > > > > > > > > > > > > 2009/3/26 Moley Harey <[email protected]> > > > > > > > > > > > > > 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 <[email protected]> > > > > > > > > > > > > > > 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 <[email protected]> > > > > > > >>> > > > > > > >>> > > > > > > >>> > > > > > > >>>> 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: > > > [email protected] > > > > > > >>>> For additional commands, e-mail: > > > > [email protected] > > > > > > >>>> > > > > > > >>>> > > > > > > >>>> > > > > > > >>>> > > > > > > >>> > > > > > > >>> > > > > > > >>> > > > > > > >>> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > --------------------------------------------------------------------- > > > > > > >> To unsubscribe, e-mail: > > [email protected] > > > > > > >> For additional commands, e-mail: > > > [email protected] > > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > > — 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/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > > > — 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/ > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > > > — 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/ > > > > > > > > > > > > > > > -- > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > — 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/ > > > -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ — 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/
