Hi Christopher,
Very good points, but I think this is a discussion that needs to
happen at a higher level. FOP needs to cooperate with Cocoon, and Cocoon is
committed to Avalon. If Avalon adopted Trunk, or did something similar, it
would fix FOP and Cocoon at the same time with little effort on FOP's part.
I forwarded your message to the Avalon developer's list at
[EMAIL PROTECTED] Does Trunk's licence allow Avalon devs to
mine it for ideas if they don't decide to adopt it unaltered? Moreover, are
the Trunk team okay with that? The Avalon team does a pretty good job of
giving credit, but sometimes people get upset if they don't totally adopt
their solution. You can subscribe to the Avalon list at
[EMAIL PROTECTED] if you want and I'm sure they'd like
your input, especially if you were willing to review their similar proposal.
(and I lost the link to that...) They're very willing to listen.
-Steve
-----Original Message-----
From: Christopher Burkey [mailto:[EMAIL PROTECTED]]
Sent: Thursday, September 13, 2001 10:40 PM
To: [EMAIL PROTECTED]
Subject: Logs, logs and more logs
At our company we have have found a solution to the logging dilemma and
think FOP should do the same.
At this point there seems to be several ways to log errors within a Java
application:
1. JDK 1.4's new Logging API's
2. Log4J
3. Log Kit
4. Avalon's Loggable interface
5. Some new JDK compatible API's
The worst part about this situation is that one component might use Log4J
and another part of the same application may depend on Log Kit. So now your
logs are spread all over the place within the same application.( Our
company is writing a Swing application that had this exact problem. )
The solution is:
Logging should be done in the same way JDBC is done. There should be one
set of interfaces and multiple drivers. Log Kit and Log4J considered the
equivalent of JDBC drivers such as Oracle, DB2 etc...
We put together Trunk ( http://www.openinstitute.org/trunk/ ) as a
collection of Interfaces compatible with multiple drivers.
From the Trunk Docs:
LoggingDriver.getDriver()
* <li>Get the value of the
<tt>org.openinstitute.trunk.LoggingDriver</tt> system property,
* which must be a class that implements the {@link
LoggingDriver}
interface.
Example Usage:
Logger LOGGER = LoggingDriverFactory.getDriver().getLogger(
SomeApplication.class );
LOGGER.info("Hello world!");
Now FOP can use any driver such as Log4J or Log Kit.
________________________________________________
Christopher Burkey [EMAIL PROTECTED]
President 513-542-3401
eInnovation Inc. http://einnovation.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]