commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <>
Subject Re: [logging] Avalon log not Serializable?
Date Thu, 23 Feb 2006 05:16:36 GMT
On Thu, 2006-02-23 at 13:07 +1100, Torsten Curdt wrote:
> > Here are the options I can see:
> > (a) remove AvalonLogger from the JCL 1.1 distribution.
> Naaaa ...bad idea IMO. We would have to deprecate it first.


> > (b) remove Serializable marker interface from AvalonLogger
> It's probably the best to fix it in the Avalon code.
> It's old, it's becoming reviled just because it's Avalon
> ...but still some people are using it ...and some people
> still have commit rights to the old codebase :)

Are *all* avalon logger implementations required to implement
Serializable? If so, then we *can* indeed fix this simply by declaring
the underlying Logger object non-transient. However I have no idea how
this could be checked, who could be asked, etc. Personally I doubt that
any such requirement exists.

Assuming that some Avalon loggers are *not* serializable then there are
two problems.

The first is that the AvalonLogger class in JCL has a constructor that
takes an avalon Logger object directly. In that case we don't even have
a category name; we therefore have no way at all to obtain an equivalent
underlying Logger object on deserialize.

The second is that the AvalonLogger constructor that takes a category
name has to assume that someone has called static
AvalonLogger.setDefaultLogger. This is pretty poor design for a start;
if they haven't then there is little option but to throw an exception
which is not good style for a logging library. The same problem occurs
on deserialize; we do have a category name but if the static
setDefaultLogger method hasn't been called then there's no way to obtain
an underlying Logger.

These two issues *can* be sort-of worked around by my proposed option
(c). However I don't really like the idea of silently disabling logging.

In short, I believe that Avalon logging in general, and the JCL
AvalonLogger in particular are not designed to handle serialization and
so we just shouldn't be trying to support that.



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

View raw message