"Craig R. McClanahan" wrote:
>
getting in a bit late on this one but...
> On Wed, 15 Aug 2001, Jason van Zyl wrote:
>
> >
> > I really donıt see any downside to binding to log4j in the components. Log4j
> > can easily integrate with anything that comes down the pipe in the future.
> >
>
> From the perspective of a potential user of Commons components, there
> would be a very important downside to locking the components in to using
> Log4J -- that forces the user to use Log4J whether or not they want
> to. (I'm not interested in arguments on why we might want to try to
> convince them otherwise -- not everyone is going to be converted :-).
You lock them in to whatever logging abstraction you provide as part of
commons. I don't see how you escape that.
>
> It doesn't matter to such users that they can write adapters and Category
> implementations and such -- they already have their own logging
> environment, and want to use *that* instead without having to learn
> Log4J's configuration formats, or enough internals to integrate it. To
> such users, tying commons components to Log4J will be a showstopper for
> using the commons components in the first place.
<snip>
> And, if you don't have Log4J installed, any log output created by Commons
> comopnents is silently thrown away -- you don't have to care at all about
> logging unless you want to.
>
Ok, hypothetically speaking, lets say I'm in an environment where I have
"Acme Logging service" setup, and that's what I want to use for log
output. I have to either:
- if commons uses Log4j then I must write adapter classes to connect to
my logging service
or
- if commons uses a "logging abstraction layer", then I either accept
that because I'm not using log4j all logging output will be lost, or I
have to write adapter classes to connect to my logging service.
So in either scenario I have to:
"write adapter classes to connect to my logging service".
So what's the argument/discussion actually about? Whatever way you go,
if I use a weird and wonderful logging service and am unwilling to
change to log4j or whatever, then I have to write code to connect the
commons components together.
The only difference is whether I have to write to log4j API or the
simpler logging abstraction you talk about.
It seems more likely that I will be able to find log4j support for my
logging service than for another abstraction layer - isn't that the
whole point of open source - someone needs to write an adapter to join X
to Y and hopefully it ends up with the log4j team? If more
Jari
--
Jari Worsley
Senior Programmer
Hyperlink Interactive Ltd