Can we please not get sidetracked from the core issues?

They are:
* should we do logging via a MyFaces logging api, to avoid direct dependencies between lots of MyFaces classes and *any* external logging library?
* are external dependencies allowed in the API jarfile?

Once we sort those out, then we can debate whether to choose commons-logging or SLF4J.

Regards,

Simon

Travis Reeder wrote:
That looks like a very interesting option, I really like the formatted way of showing the messages and the simple runtime jar swap to switch implementations.

Travis

On 12/15/05, *Shane Bryzak* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    How about using SLF4J?  (http://www.slf4j.org/)
    <http://www.slf4j.org/%29>  For anyone that doesn't know what this
    is, here's an excerpt from the site:

    "The Simple Logging Facade for Java or (SLF4J) is intended to serve
    as a simple facade for various logging APIs allowing to the end-user
    to plug in the desired implementation at /deployment/ time. SLF4J
    also allows for a gradual migration path
    <http://www.slf4j.org/manual.html#gradual> away from Jakarta Commons
    Logging (JCL)."

    It's written by Ceki Gulcu (who also wrote Log4J) and is compatible
    with the Apache license.  I'm using it successfully in production
    code right now, and the great thing about it is that it defers the
    choice of logging API to the user at deployment time.

    Regards,

    Shane



    On Fri, 2005-12-16 at 09:35 +1300, Simon Kitching wrote:
    Hi Mario,

    Mario Ivankovits wrote:
> Why wouldnt you create this wrapper library under the umbrella of > commns-logging? > Different commons-logging libraries using static linking instead of the > dynamic behaviour.
    > Say: commons-logging-log4j, commons-logging-jdklogger

    This sort of thing is under *consideration* for commons-logging 2.0.
However there are a number of limitations to this approach. You can find discussions on this in the commons email archives, and see experimental implementations of various sorts in the commons-logging SVN tree. It's not just as simple as code-it-and-release.

> I think it isnt that a good idea if every project comes with its own > wrapper library. In the worst case this will double the number of > libraries used - even more logging hassle.

What I have proposed for MyFaces is *not* the same thing at all. Have a look at the code I've attached here:
       http://issues.apache.org/jira/browse/MYFACES-949

    This solution is very lightweight and has fairly good performance.
However as the javadoc on those classes describe, this does *not* allow logging implementations to be swapped at runtime like commons-logging does. The patch I've proposed requires a *recompilation* of the MyFaces code in order to swap logging libraries. That's the price paid for having a lightweight solution (so few lines of code).

    And that's not an approach that can be build into commons-logging!

Despite recompilation being required, it *does* centralise the dependency on the underlying library into *one* class, rather than having classes all over the MyFaces library depending directly on commons-logging.

It also means that someone can come along and modify that single class to use something other than commons-logging, so that MyFaces doesn't depend on *any* jar with org.apache.commons.logging classes in it.

    Regards,

    Simon



Reply via email to