On Dec 4, 2008, at 6:26 AM, Ceki Gulcu wrote:

Hello Ralph,

Thank for you for your reply. Logback as the basis for log4j 2.0 is a
larger step than what I had in mind. Implementation of the SLF4J API
directly in log4j is a low-hanging fruit but having a significant
positive impact on the java community, by virtue of de facto
standardization.


IMHO, breaking 100% compatibility would be a reasonable price to pay
given the benefits involved, namely convergence into a logging
standard.



As far as I can tell, there is no significant practical advantage to our user community to do a direct implementation of SLF4J in log4j over the facade implementation provided by slf4j.org. I have never seen a significant performance difference between the two approaches and a direct implementation has several strong negatives to the log4j community and users that have been previously discussed.

However, I could see a significant political advantage to SLF4J to have an implicit endorsement from the ASF and in my mind that is what this proposal is about. In my mind, java.util.logging has already won the API standardization war years ago, but it has been mostly limited the available appenders and configurators. One of the design goals (https://issues.apache.org/jira/browse/LOG4J2-5 ) for log4j 2.0 is to have the back-end classes independent of the API, so that the bulk of log4j 2 is isolated from the client's API choice.


SLF4J is a very stable API which has not changed incompatibly since
version 1.0-beta5, released on August 2005. Client code compiled
against SLF4J 1.0-beta5 will compile against any subsequent
version. Client code compiled against SLF4J 1.0-beta5 will run with
any subsequent version (runtime/binary compatibility).

If we can reach an agreement, SLF4J-compliant log4j can be released
within *days*. It can be named log4j 1.4 or log4j 2.0. If it were named
1.4, that version could form the base for log4j 2.0.

I will respond to Scott's message separately.


With the breaking API change, it should not be called Apache log4j 1.4 and should not use the org.apache.log4j package names for the modified classes. Back when SLF4J spun out from the ASF, SLF4J.org or QoS.ch provided a log4j variant called nlog4j which is no longer available. If this has to come to pass, I'd much rather see an Apache nlog4j or slog4j than confuse the Apache log4j brand.

The Apache process makes it difficult enough get non-controversial maintenance releases out in days, let alone something with as much potential for disruption as this.

I haven't been able to contribute much code since Hurricane Ike, but I just returned from a long Thanksgiving trip and was expecting to work on getting a log4j 1.2.16 release candidate ready. However, I'll explore setting up an experimental take on a direct implementation of SLF4J without doing violence to Java compatibility expectations, so that a side-by-side comparison of a direct and facade implementation could be made.



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

Reply via email to