Hi.

Everything new is old again (or vice versa) ;)

Of course. I didn't claim that ListAppender was something new and magic. I just thought it was another piece which would probably fit well into the puzzle.

This has been available
forever in the form of the CyclicBuffer, used by the SMTPAppender among
others.

I guess there are lots of Appenders using that buffer internally. AsyncAppender would be another example. But as far as I know, none of those Appenders expose their Buffer through their public interface.

You don't need a whole new Appender just for this.

In fact, what I (beeing a log4j user) needed was exactly an Appender. I needed it, to feed it directly to the Logger.addApender(Appender) method. The CyclicBuffer wouldn't help here, cause it doesn't implement the Apender interface. So anyway I'd have to write my own appender.

On the other hand, ListAppender could serve as an "of the shelf"
solution attachable to any Logger. But as you said, everything new is
old again:
The VectorAppender does exectly the same, only with a little bit of
aditional functionality and a slightly less general interface. If that
one was in the log4j core, I would have picked it.

Regards,
Michael

-----Original Message-----
From: Paul Smith [mailto:[EMAIL PROTECTED]
Sent: Sunday, October 17, 2004 6:43 PM
To: Log4J Developers List
Subject: RE: Yet another Apender proposal: ListAppender

There is also the org.apache.log4j.VectorAppender which is already
there (I
think it was mainly used for test case purposes, but it's still
useful).
-----Original Message-----
From: Paul Smith [mailto:[EMAIL PROTECTED]
Sent: Monday, October 18, 2004 8:04 AM
To: Log4J Developers List
Subject: RE: Yet another Apender proposal: ListAppender


I think I already have just such an appender within the Chainsaw package. I might refactor it out into the main log4j core too. The appender implementation exposes a ListModel of it's events it is given.

You can see it here:

http://cvs.apache.org/viewcvs.cgi/logging-log4j/src/java/org/apach
e/log4j/ch
ainsaw/messages/MessageCenterAppender.java?view=markup

Here's a TinyURL for the above:

http://tinyurl.com/5bvv4

cheers,

Paul Smith


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Saturday, October 16, 2004 6:32 AM
To: [EMAIL PROTECTED]
Subject: Yet another Apender proposal: ListAppender


Hello folks!

Probably this is getting too frequent now, but I'd like to propose a new
Appender, too. I guess it is not so sophisticated and usefull as the
MultiplexAppender proposed recently, but therefore it is small and
simple. It's only one class, so I've simply attached it to this
mail.
The Javadoc coments are rather low quality, but they should give a
good idea about how it works.


My motivation was, to store some LoggingEvents in my application,
so
that they could be presented in its GUI later. In particular, was
writing some complex import filter, and was logging all import
steps
with Log4j. But I also wanted to give the user some direct feedback
about the progress. Instead of accumulating messages for the GUI
seperately, I decided to use the existing Log4j infrastructure for
this.
This would reduce the additional logging code in the import.

However the GUI is asynchronous to the import, so I needed to store
the LoggingEvents somewhere, and retrive them, whenever they should be
rendered. Of course, I could have used some Appender writing to a
file,
and parse that file to display the events. But in fact the GUI
didn't
need to make the events persistent, it just needed them in memory.
So I
wrote that simple ListAppender, which buffers the LoggingEvents in
a
List. The application using this Appender has full control of the
List,
and can retrive or modify the stored LoggingEvent whenever it
wants.
I could't find any similar Appender in the Log4j API docs. So
either
you're in need of it, or it is completely unusefull for anyone
else. Please have a look at it, and decide yourself. If you think any of
the
code could be usefull for Log4j, please feel free to use it.


Regards,
Michael

PS: Thanks for all the other Appenders and Log4j in general. It's
been very usefull for me, so far.



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to