commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Bourg <>
Subject Re: [logging] JCL2.0 design - API
Date Wed, 01 Mar 2006 10:19:00 GMT
Boris Unckel wrote:
> Hello,
> Simon Kitching wrote:
>> == LogFactory as factory for Log instances
>> Currently, JCL uses a LogFactory to create Log instances:
>>   Log log = LogFactory.getLog("fff");
>> By contrast, Log4j has the factory method on the Log class:  
>>   Logger log = Logger.getLog("fff");
>> Having one less class is a *little* nicer for users I think. However it
>> does reduce the flexibility of the system a little and changing this is
>> a major difference from JCL 1.x.
>> My choice would be: keep LogFactory and LogFactory.getLog as the
>> mechanism for obtaining Log instances.
> There is one really big advantage of the current API in this case:
> If you want to have Logger.getLog("fff") Logger must be a class, 
> currently it is an interface.
> Please do not switch from an interface to an class, since it is 
> impossible to provide a native
> implementation of JCL2 without an interface.

It's possible to keep a Log interface and having one less class to 
import by adding a static class in the Log interface. It would look like 

     Log log = Log.Factory.getLog("foo");

I don't expect everyone to like it ;) I personally prefer the 
Log4j/JDK1.4 syntax.

Emmanuel Bourg

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message