The only way I know of is to do something like
Logger openejb = Logger.getInstance(LogCategory.OPENEJB, Foo.class); boolean configured = openejb.getAllAppenders().hasMoreElements(); If there is an appender for OPENEJB then configured will be true and we will know that OPENEJB was configured explicitly. Okay, now here are some of the major flaws with this approach, 1. If rootLogger is configured by the user and has an appender, then OPENEJB will inherit the appender. So even if OPENEJB is not explicitly configured, it will still have an appender. 2. Lets say we first check and find that rootLogger does not have an appender, in that case if OPENEJB has an appender, then we are sure that OPENEJB is configured explicitly. 3. If rootLogger and OPENEJB do not have an appender, then we can "guess" that OPENEJB is not configured, but we can still have a case where OPENEJB was configured explicitly, but somebody forgot to add an appender to it. We will have to mention that if OPENEJB is not configured explicitly with an appender, then logging will not work. On 8/29/07, David Blevins <[EMAIL PROTECTED]> wrote: > > On Aug 28, 2007, at 7:35 PM, Karan Malhi wrote: > > > I dont even think they can change log levels. We used the logic that > > - if conf is present - use logging.properties > > - if conf is present - logging.properties is absent- install > > logging.properties and use it > > - if conf is absent, assume embedded and use > > embedded.logging.properties which is available in the openejb-core.jar > > . > > - if embedded.logging.properties is not found in openejb-core.jar then > > rely on the log4j.configuration system property > > > > So, if openejb is embedded within GERONIMO, no matter what log levels > > they set in the var/logs directory, those settings should never take > > effect. > > > > I think what we can do though is that Geronimo can set the > > log4j.configuration system property in the > > o.a.g.openejb.OpenEjbSystemGBean and we can then do the following: > > - if conf is absent, assume embedded, look for log4j.configuration > > system property. if log4j.configuration property is set, then use it, > > if it is absent then use embedded.logging.properties > > > > Do you think I am on the right track and does the above makes any > > sense? > > Do you know if there is a way to check to see if the "OpenEJB" log4j > category has been explicitly configured? If so we could skip the > whole business and assume whatever embedded environment we're in has > taken responsibility for logging. > > -David > > -- Karan Singh Malhi