Great, This looks like it would work for me. The only question I have is what's the "UnsynchronizedAppenderBase" and where can I find some info about it. Thanks Greg.
On Mon, May 11, 2009 at 10:48 PM, Ralph Goers <[email protected]> wrote: > You could create your own Appender that extends UnsynchronizedAppenderBase. > In the Appender write the events to a Queue, taking care that the Queue is > thread-safe (for example, by using one of the Queues in > java.util.concurrent). You could then have a separate thread that then does > the real work of removing the logging events from the queue and processing > them. With this, the only locking that would occur in the application thread > would be in adding the LoggingEvent to the queue. However, it would also > have to retrieve the caller data and the thread name prior to adding the > LoggingEvent to the queue. > > Actually, now that I think about it, this seems like it would be a great > AsynchronousAppender class. It would just need to be configured with the > Appender that writes the data. > > Ralph > > > On May 11, 2009, at 4:54 PM, Greg Flex wrote: > > Hi Ceki, >> I (again) have some questions about log4j. >> (I guess Logback works the same way....) >> I was wondering if there's a way to save a "logger object" to a >> data structure like a queue or something before sending it to some >> appender. >> For example: >> The socket appender will cause the log4j client to lock/freeze if there's >> no link to the server. >> I verified it and it does lock the client. >> I need to deal with this issue so I'd like to store "logger objects" (or >> something) >> before they go to the socket or some other appender first. >> At the moment I have a wrapper around the log4j that when the debug method >> is called >> I'm just calling the log4j debug method passing some args etc. >> so I have: logger.debug("some stuff"); >> The configuration file does the trick and outputs to the console (at the >> moment) all the info: >> the class name, the method name, the line number etc. >> I'd like to save this info somehow to some object that I can store in a >> queue or something. >> How do I retrieve this information programmatically? Is there a way? >> I know about LoggingEvent object, could I use it and pass the above stated >> information >> to its constructor then store it in a queue? >> Logger gets me for free (like method name etc.) >> Any suggestion? >> Thanks a lot. >> Greg. >> >> >> _______________________________________________ >> Logback-user mailing list >> [email protected] >> http://qos.ch/mailman/listinfo/logback-user >> > > _______________________________________________ > Logback-user mailing list > [email protected] > http://qos.ch/mailman/listinfo/logback-user >
_______________________________________________ Logback-user mailing list [email protected] http://qos.ch/mailman/listinfo/logback-user
