cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject Re: C2 Logging
Date Sun, 11 Jun 2000 11:55:43 GMT
"Alejandro P. Revilla" wrote:
> 
> >
> > > > Stefano Mazzocchi wrote
> > > > 4) Internal logging.
> > >
> > > > Well, this is in the Cocoon1 todo list but I'll implement it in
> > > > Cocoon2... I saw the IBM Log4j package and sounds pretty good. Another
> > > > option would be to use Avalon's Omero... we'll see.
> > >
> > > > Anyway, internal logging will be a must when the pipeline will be in
> > > > place.
> > >
> > > This is an old message, but I'm curious if there are still plans for logging
> > > in C2. I would love to see a logging facility that is robust enough to
> > > capture crital errors for alerts(email/page) and monitor informational/debug
> > > messages via a terminal. Lots of possibilities here, but something even
> > > minimal for critical errors would seem like a must?
> >
> > whatever it is, it oughta use ibm's log4j package. it kicks.


Uh, found this very old message I flagged for comment. Sorry. Better
later than never :)

> I've developed a very simple and extensible logger subsystem
> for my little project (yet another logger subsystem...)

Ok
 
> It has just three main classes. LogSource, Logger and LogEvent
> and a few LogListeners.
> 
> You associate a "realm" (so you can filter events) to your LogSource
> and associate LogListeners to your Loggers. It comes with three
> standard LogListeners (SimpleLogListener dumps to PrintStream,
> RotateLogListener writes to a set of files and perform rotations
> and OperatorLogListeners batches e-mails with selected
> events at customizable intervals).

Sounds very much like Avalon's Omero, doesn't it?
 
> Output is XML _like_, all log messages are at least encapsulated
> by a "<log></log>" and a custom message tag specified at
> LogEvent creation.
> 
> i.e.:
> 
> <log realm="your-realm" at="Wed May 24 18:47:13 NDT 2000">
>  <your-message>
>   Any text
> 
>   <my-loggeable-object>
>   </my-loggeable-object>
>   <exception>
>     Exception StackTrace
>     ...
>     ...
>   </exception>
>  </your-message>
> </log>
> 
> and objects such as Exceptions, SQLExceptions, etc. gets
> special treatment (i.e. getNestedException() gets called,
> etc.)

Hmmmm, kind of verbose.
 
> It would be very easy to provide a LogListener that
> would generate SAX events or change things to generate
> SAX events out of LogEvent (source of the log message itself).
> 
> SyslogListeners that forward messages to Syslog
> and even a log4j based LogListeners are easy to build
> (hmm.. wrapper syndrome...:-).
> 
> Inspired by Cocoon's sitemap configuration, Logger currently
> integrates with my QSP project by means of a xml configuration
> file, something like this:
> 
>  <logger name="my-logger">
>     <log-listener class="org.jpos.util.SimpleLogListener"/>
>     <log-listener class="org.jpos.util.RotateLogListener">
>       <property name="file" value="/var/log/authd.log" />
>       <property name="window" value="86400" />
>       <property name="copies" value="10" />
>     </log-listener>
>  </logger>
> 
> Adding a 'logger' attribute to ELEMENTS like 'filter', 'generator',
> etc. to your cocoon.xconf file you would be able to assign different
> loggers to your components (posibly on the fly).
> 
> You simply add objects to a LogEvent and then fire a
> Logger.log(yourEvent). Objects added to LogEvent may optionally
> implement "Loggeable" interface (just a dump() method) and it's
> dump method will get called instead of its toString() method.

Hmmmm, may create performance problems.
 
> I know there are many alternatives right now, I've develop this
> little one some time ago, prior to log4j and Avalon's Omero
> availability but I still think it's usable and best of all,
> it can be easily adapted to our needs (and by the way, it's
> production quality, or at least I have it in production ;-)
> 7x24 on some critical credit-card related systems).

Ok, I'll forward this to Federico for a look 

> If you want this code I would be glad to donate it to Cocoon
> (you can rename package name, change license, whatever) and
> also help you to integrate it with existing code,
> 
> Resources: http://www.jpos.org/doc/LoggerGuide.html
>       CVS: http://www.jpos.org/cvs.xml
>   example: http://www.jpos.org/cvs/jpos/src/examples/logger/Test.java

Ok, Fede, take a look and contact Alejandro if interested.

(Cocoon2 will probably use Avalon so the logging part will be inherited
directly)

-- 
Stefano Mazzocchi      One must still have chaos in oneself to be
                          able to give birth to a dancing star.
<stefano@apache.org>                             Friedrich Nietzsche
--------------------------------------------------------------------
 Missed us in Orlando? Make it up with ApacheCON Europe in London!
------------------------- http://ApacheCon.Com ---------------------



Mime
View raw message