[slf4j-dev] EventLogging (was Re: [logback-dev] RFC: LoggingEvent redesign)

Ralph Goers rgoers at apache.org
Wed Feb 25 10:08:03 CET 2009


I figured the easiest way to discuss this was over code so I checked  
in the EventLogger classes. If it is OK I'll add documentation for it.  
Otherwise the classes can easily be reverted.

Ralph

On Feb 24, 2009, at 5:20 PM, Ralph Goers wrote:

>
> On Feb 24, 2009, at 3:32 PM, Joern Huxhorn wrote:
>
>> Hi Ceki
>>
>> On 24.02.2009, at 20:00, Ceki Gulcu wrote:
>>
>>>
>>> Joern,
>>>
>>> Accepting parameters of type Object instead of String opens the  
>>> door for nasty bugs as you point out. At the same time, it also  
>>> constitutes an important extension point for logback within the  
>>> limits imposed by the SLF4J API.
>>>
>>
>> At this point I'm wondering if such an extension is really a good  
>> idea at all.
>>
>> Don't use a hammer to screw a screw. Ok, it would kind of work, but  
>> you'd be better of using a screwdriver instead.
>>
>> The hammer is slf4j/logback, a magnificent framework for  
>> application logging. The screwdriver would be an auditing framework  
>> (see http://audit.qos.ch/apidocs/index.html :D).
>> A pretty good indicator that slf4j is, in fact, the wrong tool for  
>> the job, is that log levels are mostly meaningless in an audit  
>> context.
>
> This discussion is now getting very much off topic and probably  
> should move to slf4j dev. So I've addressed it to both lists. Feel  
> free to drop logback dev.
>
> While it is true that levels are meaningless, using the same API,  
> configuration, Appenders, etc has considerable value.  The  
> differences I have between "normal" logging and "audit" logging are:
> 1. Events should always be logged. Filtering should only be used to  
> determine what Appender to use.
> 2. The log record typically consists of several data elements, not  
> just a text message.
> 3. Only a single Logger is required specifically for the use of  
> event logging.
>
> No offense to Ceki, but I believe audit.qos.ch is taking a slightly  
> different approach than what I am doing. I've been doing this quite  
> a while in my own proprietary code and see no need to keep it that  
> way, especially since it is so simple. We simply leverage the MDC  
> for all our request context information (i.e. these appear in every  
> audit event that might occur on a request) and use the EventData to  
> add information about the specific event. That's it.  Where the  
> value-add is is in creating Appenders that can provide guaranteed  
> delivery since that is a requirement of most applications and that  
> is where stuff can get really complicated.
>
> Ralph
>




More information about the slf4j-dev mailing list