[slf4j-dev] [logback-dev] RFC: LoggingEvent redesign
Ralph Goers
rgoers at apache.org
Wed Feb 25 02:20:33 CET 2009
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