FYI, In Axis we have our own LogFactory (http://cvs.apache.org/viewcvs.cgi/ws-axis/java/src/org/apache/axis/components/logger/LogFactory.java).
-- dims On Fri, 5 Nov 2004 11:29:07 -0800, Dain Sundstrom <[EMAIL PROTECTED]> wrote: > After working with geronimo for a while, I am convinced our current > logging solution was a bad idea (on my part :). There are several > problems, so I'll try to categorize them. > > Log4j GBeans > > Our current log4j gbeans attempt to control the creation of log > objects, priories... basically the log4j configuration. The problem I > have found is any application can come along and "reset" the current > log4j configuration and reinitialize the system. I do not believe > there is any way to prevent this. It is on of those problems that > everyone had control which in effect gives no one control. > > I propose that we drop all of our gbeans that try to control Log4j and > instead go to a single gbean that exposes the operations of LogManager, > and a log4j.xml file (as a big string). The big string would be a > persisted to somewhere like var/log4.xml. > > Commons LogFactory > > Currently all of our code uses commons logging. The problem is how we > obtain org.apache.commons.logging.Log implementation. This is most > common code in to obtain a Log: > > private static Log log = LogFactory.getLog(MyGBean.class); > > The problem is the static LogFactory. As with log4j above anyone can > come along an kick out our log factory. Also, the code we use to setup > the LogFactory on geronimo boot is very very ugly and error prone. > > I propose we make "Log log" a GBean magic attributes, which means that > is automatically available to all gbeans (just like class loader and > kernel). If a gbean declares that it wants a log we will create and > initialize a log. This will also let the kernel add additional > information to log events such as gbean object name. > > Commons Log > > If we make the above changes, we will only be using the > org.apache.commons.logging.Log class from commons logging. The problem > is to get this class we include a commons-logging jar into geronimo and > this jar will carry a specific version number. This means that all > applications are restricted to use the version of commons logging that > we ship. > > I can think of two solutions this problem: ship only the > org.apache.commons.logging.Log class with geronimo or repackage Log > into a geronimo package (say org.apache.geronimo.logging.Log or > org.apache.geronimo.logging.GLog). I don't have much of a preference > for either of these solutions, but I feel we must address this problem. > > I'm going to start working on the first proposal above, Log4j, as I > think it is the least controversial. If you have any concerns about > that one, please respond sooner rather then later. > > Thanks, > > -dain > > -- > Dain Sundstrom > Chief Architect > Gluecode Software > 310.536.8355, ext. 26 > > -- Davanum Srinivas - http://webservices.apache.org/~dims/