[logback-user] Log4j LoggingEvent

Greg Flex greg.flex at gmail.com
Tue May 12 18:32:22 CEST 2009


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 <rgoers at apache.org> 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
>> Logback-user at qos.ch
>> http://qos.ch/mailman/listinfo/logback-user
>>
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/logback-user/attachments/20090512/a8ca89da/attachment-0001.htm>


More information about the Logback-user mailing list