[slf4j-dev] Re quest for a log message processing hook.
Robert Elliot
rob at lidalia.org.uk
Wed May 27 22:57:33 CEST 2009
Reading your post properly I see my suggestions were otiose - you'd
already rejected the config possibility and suggested wrapping the
logger. Apologies for not paying more attention before leaping in.
On 27 May 2009, at 21:51, Robert Elliot wrote:
> Could you write a very lightweight implementation of SLF4J yourself
> that adds the listener hook and then forwards on to a wrapped "real"
> SLF4J implementation? Effectively a decorator pattern for the real
> SLF4J logger. This would also allow you to always return true from
> the isXXXXEnabled() methods, which would otherwise prevent you
> getting any logging messages inside blocks protected by them.
>
> One issue I can see with this approach see is that you'd have
> binding problems - you'd need your decorator SLF4J implementation to
> be bound as "the" SLF4J implementation, and then have some other
> mechanism to bind the underlying SLF4J implementation you want to
> use for the actual logging. Don't know if you could do anything
> clever with classloaders there on bootstrap? Try and ensure that
> the apps general class loader loads the binding class from your
> decorator SLF4J implementation's jar, but inside your SL4J
> implementation you load any implementation of SLF4J on the classpath
> other than yours? I confess my knowledge of classloaders isn't
> really up to answering that question without spiking it out myself.
>
> Otherwise I have to say it seems more reasonable to set up the
> underlying logging system with the root logger set to debug and a
> special appender where you put your code, assuming you are in
> control of the configuration of the underlying logging system.
>
>
> On 27 May 2009, at 15:38, ogradyjd wrote:
>
>>
>> I don't really want to say exactly what I'm working on right now
>> for various
>> reasons, but I can tell you my needs.
>>
>> What I'm doing requires me to be able to receive all the messages
>> being
>> logged, regardless of whether the underlying logging configuration
>> is set to
>> log them or not. For instance, if in the code I were to use slf4j
>> as the
>> logger, and the underlying log system was Log4j, and the Log4j
>> configuration
>> was set to "warn", I would still want to get copied on logging
>> messages for
>> "info", "debug", etc...
>>
>> From there, the system I'm writing is going to process the logs in
>> it's own
>> way, and then send them... somewhere else (he said, mysteriously).
>> It will
>> be able to process the logs in a more dynamic way and pay attention
>> to the
>> threads the log messages came from, so changing the configuration
>> files will
>> be unnecessary.
>>
>> This is why I'm looking for a way to work with the abstraction
>> layer rather
>> than the underlying log system. What log messages get processed
>> will be
>> completely independent of the log system configuration and will be
>> instantaneous. For the purposes of what I'm doing, consider the log
>> configuration and output files normally generated as unreachable.
>>
>> Does that give you enough reasons why I'm looking for "listener" I
>> asked
>> about? No worries though. I understand your software has a
>> charter, so I
>> will wrap the Logger and LoggerFactory implementations for now,
>> unless,
>> given the above info, you have better ideas?
>>
>>
>> Ceki Gulcu wrote:
>>>
>>>
>>>
>>> Thorbjoern Ravn Andersen wrote:
>>>>
>>>> Naturally.
>>>>
>>>> Often people who ask a question have gotten stuck on solving a
>>>> problem
>>>> in a specific way, and ask about how to do the specific way.
>>>> Knowing
>>>> about the underlying problem may allow an alternate approach
>>>> which may
>>>> even happen to work better (if at all :) ).
>>>
>>> Indeed, the original problem might lend itself to different type of
>>> solution.
>>>
>>>
>>> --
>>> Ceki Gülcü
>>> Logback: The reliable, generic, fast and flexible logging
>>> framework for
>>> Java.
>>> http://logback.qos.ch
>>> _______________________________________________
>>> dev mailing list
>>> dev at slf4j.org
>>> http://www.slf4j.org/mailman/listinfo/dev
>>>
>>>
>>
>> --
>> View this message in context: http://www.nabble.com/Request-for-a-log-message-processing-hook.-tp23724666p23743814.html
>> Sent from the Slf4J - dev mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> dev mailing list
>> dev at slf4j.org
>> http://www.slf4j.org/mailman/listinfo/dev
>
> _______________________________________________
> dev mailing list
> dev at slf4j.org
> http://www.slf4j.org/mailman/listinfo/dev
More information about the slf4j-dev
mailing list