Seems like a step backward to me - less compatible with log4j (no more
support for renderers or MapFilter or ReflectionFilter). 

-----Original Message-----
From: Curt Arnold [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, August 02, 2005 1:43 PM
To: Log4J Developers List
Subject: slf4j-1.0-beta4 update

I'll try to commit an update tonight (barring objection) that will
update the CVS HEAD to use slf4j-1.0-beta4 (currently uses beta3) when
compiled using the -Dslf4j=true switch.  The major change is that
messages and format specifiers have been changed from Object to String
in  org.slf4j.Logger, for example:

debug(Object msg) -> debug(String msg)
debug(Object msg, Throwable t) -> debug(String msg, Throwable t)
debug(Object pattern, Object param1) -> debug(String pattern, Object
param1)

and so on for error, info and warn.

The first two had been identical to existing methods on
org.apache.log4j.Category.  Since the parameters could of the existing
method can not be changed without breaking source and run- time
compatibility with earlier versions of log4j, I added additional methods
with the new signatures that delegate to the old methods, that is
something like:

public void debug(final String msg) {
    debug((Object) msg);
}

I'm hoping that the JVM is smart enough to do that almost free, but  
haven't benchmarked it.   Delegating is the right thing to do since  
existing extensions of Logger may have overriden the old methods (they
weren't declared final).  Unfortunately, if there is a hit, it will
occur both in the slf4j enabled and normal log4j builds as it is current
structured.

I had original implemented the new signatures as final, however that
would cause XLogger to fail to compile since it had introduced its own
debug(String msg) and making it final in the base class caused it to
fail to compile.  Seems like a bad thing to do, but since it happened in
the unit tests, I'm sure that it happens in the real world so I took the
final designation off.

Eventually, I'd like to do benchmarking to understand the performance
difference if any between a facade implementation and the current direct
implementation.  But this will keep us in synch with slf4j for now.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to