On Wed, 2005-06-22 at 21:55 +0200, Dennis Lundberg wrote:
> Simon Kitching wrote:
> > Hi,
> >
> > Currently the Log4JLogger code in svn has this horrible stuff all
> > through it:
> > if (is12) {
> > ...
> > } else {
> > ...
> > }
> >
> > This is to handle the fact that log4j versions 1.2 and 1.3 are expected
> > to be binary incompatible in both directions, ie code compiled against
> > 1.2 won't work against 1.3 and code compiled against 1.3 won't work
> > against 1.2.
> >
> > The hack does allow code compiled against 1.3 to run against 1.3.
> > However there are a number of disadvantages:
> > * it requires compiling against 1.3 which isn't released yet
> > and may be many months away.
> > * it has a performance hit
> > * it isn't very readable
> > * it isn't future proof; when log4j 1.3 comes out, this code
> > won't work as the Priority class will go away completely.
> >
> > I would therefore prefer to split this class into separate Log4J12Logger
> > and Log4J13Logger. A static initializer block in each will check which
> > version of log4j is available, and throw an exception to declare
> > themself "unavailable" if the wrong log4j version is present. Both
> > adapters can also be included in the list of discoverable logging
> > classes.
>
> I think it would be a wise move to split the class in two. A while back
> I spent a fair amount of time trying to understand the differences
> betwen log4j 1.2 and 1.3 and also to get commons-logging to work with
> both log4j versions. It was confusing to say the least, and splitting
> this class would at least make the commons-logging code more understandable.
+1
> > Of course removing a class will mean a 1.1 version number, but that's
> > good for a number of reasons.
> >
> > The only other major concern I see is config files or system properties
> > that explicitly request the old logadapter by name. But that should be
> > easily fixable, and a config change seems a reasonable thing to do in
> > a .x release to me. Alternatively we could provide a trivial Log4JLogger
> > class that just extends Log4J12Logger; however I suspect this will cause
> > more pain and confusion than simply reporting a failure, esp. when log4j
> > 1.3 is released and starts to become widely used.
>
> I agree that, unless people have extended Log4JLogger, the only problems
> that could arise for users of commons-logging would be to change their
> config-files.
>
> If we hold on to the Log4JLogger class for a while and let it extend
> Log4J12Logger, as you suggest, we might get away with doing a 1.0.X release.
i think that the next release should be a 1.1 release in any case.
however, i would prefer retaining Log4JLogger so that it can be properly
deprecated.
- robert
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]