We could have the isConfigured() method take as a parameter the Category
name (errr sorry, the Logger name).  This would remove some of the
ambiguity.  I realize people just want to know whether it's configured, not
realizing that "it depends".

Perhaps isConfigured(String loggerName) could check the configuration of
loggerName.  If loggerName is null or empty, then it performs as you
describe below.

- Paul

Paul Glezen
Consulting IT Specialist
IBM Software Services for WebSphere
818 539 3321


Ceki Gülcü <[EMAIL PROTECTED]> on 08/30/2002 07:03:50 AM

Please respond to "Log4J Developers List" <[EMAIL PROTECTED]>

To:    "Log4J Developers List" <[EMAIL PROTECTED]>, "'Log4J
       Developers List'" <[EMAIL PROTECTED]>
cc:
Subject:    RE: Adding isConfigured method to LoggerRepository interface




What is the definition of "log4j is configured"? Is it when a
configurator is invoked? When the first appender is attached to the
root logger? Any logger? Is it when the level of a logger is set?

One possible definition is to say that log4j is considered as
configured when the "log4j:WARN: No appenders could be found for
logger (xyz)" message no longer appears.

Given the tree-like structure of logger hierarchies, this message
depends on the logger. For example, assuming nothing is attached to
the root logger, if you attach an appender to logger "x", then loggers
"x", "x.y" and "x.y.z" will be considered as configured whereas logger
"a.b.c" cannot be considered as configured.

Based on the "log4j.WARN: No appenders ..." criteria, a logger is
considered as configured if a FATAL message sent to that logger will
not print the "log4j.WARN: ..."  message. This will happen if the
logger's effective level is OFF or if an appender is attached to the
logger or higher up in the tree.

Does it make sense?

At 09:46 28.08.2002 -0700, Mark Womack wrote:
>+1 to this concept, but does it have to be dependent on some code
>(configurator or user) calling a setConfigured() method?  Is there anyway
>for this value to be set when code starts manipulating the logger/appender
>settings?
>
>-Mark
>
> > -----Original Message-----
> > From: Ceki Gülcü [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, August 28, 2002 7:22 AM
> > To: [EMAIL PROTECTED]
> > Subject: Adding isConfigured method to LoggerRepository interface
> >
> >
> >
> > In the past, developers have often complained about the difficulties
> > of determining whether log4j has been already configured. One possible
> > way is to check whether the root logger has been configured. For
> > example,
> >
> > Logger root = Logger.getRootLogger();
> > boolean rootIsConfigured = root.getAllAppenders().hasMoreElements();
> >
> > The slight problem with this technique is that log4j may be configured
> > without this being visible at the root logger level.
> >
> > I propose that in log4j 1.2.7 we add the isConfigured method
> > (returning a boolean) in to the LoggerRepository interface. Users
> > would then write
> >
> > LogManager.getLoggerRepository().isConfigured()
> >
> > to check whether log4j was already configured or not.
> >
> > Existing configurators would call loggerRepository.setConfigured(true)
> > when configuring log4j. User code would also have the possibility to
> > call this method.
> >
> > --
> > Ceki
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
>
>--
>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]
>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]
>

--
Ceki


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>






--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to