Hi all,

I am using Chainsaw V2 to manage log messages coming from a C++ application,
currently the amount of messages that Chainsaw is receiving is very huge and
so we are getting "Out of Memory" errors...

Is there any way to increase the Java Heap Space when launching Chainsaw? I
have seen somewhere the default is 64Mb which is not ecnough for us...

Another question, it seems that by defualt there is an option called "cyclic
buffer" taht is set to 5000, what does this option means? Where can we
configure it?

Thanks in advance,

Mh

2009/3/26 Moley Harey <[email protected]>

> 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/
>



-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
— 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/

Reply via email to