public class DOMConfigurator extends java.lang.Object implements Configurator
The DTD is specified in log4j.dtd.
Sometimes it is useful to see how log4j is reading configuration
files. You can enable log4j internal logging by defining the
log4j.debug variable on the java command
line. Alternatively, set the debug
attribute in the
log4j:configuration
element. As in
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/"> ... </log4j:configuration>
There are sample XML files included in the package.
Modifier and Type | Class and Description |
---|---|
private static interface |
DOMConfigurator.ParseAction |
Modifier and Type | Field and Description |
---|---|
(package private) static java.lang.String |
ADDITIVITY_ATTR |
(package private) static java.lang.String |
APPENDER_REF_TAG |
(package private) static java.lang.String |
APPENDER_TAG |
(package private) java.util.Hashtable |
appenderBag |
(package private) static java.lang.String |
CATEGORY |
(package private) static java.lang.String |
CATEGORY_FACTORY_TAG |
protected LoggerFactory |
catFactory |
(package private) static java.lang.String |
CLASS_ATTR |
(package private) static java.lang.String |
CONFIG_DEBUG_ATTR |
(package private) static java.lang.String |
CONFIGURATION_TAG |
(package private) static java.lang.String |
dbfKey |
(package private) static java.lang.String |
EMPTY_STR |
(package private) static java.lang.String |
ERROR_HANDLER_TAG |
(package private) static java.lang.String |
FILTER_TAG |
(package private) static java.lang.String |
INTERNAL_DEBUG_ATTR |
(package private) static java.lang.String |
LAYOUT_TAG |
(package private) static java.lang.String |
LEVEL_TAG |
(package private) static java.lang.String |
LOGGER |
(package private) static java.lang.String |
LOGGER_FACTORY_TAG |
(package private) static java.lang.String |
LOGGER_REF |
(package private) static java.lang.String |
NAME_ATTR |
(package private) static java.lang.String |
OLD_CONFIGURATION_TAG |
(package private) static java.lang.Class[] |
ONE_STRING_PARAM |
(package private) static java.lang.String |
PARAM_TAG |
(package private) static java.lang.String |
PRIORITY_TAG |
(package private) java.util.Properties |
props |
(package private) static java.lang.String |
REF_ATTR |
(package private) static java.lang.String |
RENDERED_CLASS_ATTR |
(package private) static java.lang.String |
RENDERER_TAG |
(package private) static java.lang.String |
RENDERING_CLASS_ATTR |
(package private) LoggerRepository |
repository |
private static java.lang.String |
RESET_ATTR |
(package private) static java.lang.String |
ROOT_REF |
(package private) static java.lang.String |
ROOT_TAG |
(package private) static java.lang.String |
THRESHOLD_ATTR |
private static java.lang.String |
THROWABLE_RENDERER_TAG |
(package private) static java.lang.String |
VALUE_ATTR |
INHERITED, NULL
Constructor and Description |
---|
DOMConfigurator()
No argument constructor.
|
Modifier and Type | Method and Description |
---|---|
static void |
configure(org.w3c.dom.Element element)
Configure log4j using a
configuration element as
defined in the log4j.dtd. |
static void |
configure(java.lang.String filename)
A static version of
doConfigure(String, LoggerRepository) . |
static void |
configure(java.net.URL url)
A static version of
doConfigure(URL, LoggerRepository) . |
static void |
configureAndWatch(java.lang.String configFilename)
Like
configureAndWatch(String, long) except that the
default delay as defined by FileWatchdog.DEFAULT_DELAY is
used. |
static void |
configureAndWatch(java.lang.String configFilename,
long delay)
Read the configuration file
configFilename if it
exists. |
private void |
doConfigure(DOMConfigurator.ParseAction action,
LoggerRepository repository) |
void |
doConfigure(org.w3c.dom.Element element,
LoggerRepository repository)
Configure by taking in an DOM element.
|
protected void |
doConfigure(org.xml.sax.InputSource inputSource,
LoggerRepository repository)
Configure log4j by reading in a log4j.dtd compliant XML
configuration file.
|
void |
doConfigure(java.io.InputStream inputStream,
LoggerRepository repository)
Configure log4j by reading in a log4j.dtd compliant XML
configuration file.
|
void |
doConfigure(java.io.Reader reader,
LoggerRepository repository)
Configure log4j by reading in a log4j.dtd compliant XML
configuration file.
|
void |
doConfigure(java.lang.String filename,
LoggerRepository repository) |
void |
doConfigure(java.net.URL url,
LoggerRepository repository)
Interpret a resource pointed by a URL and set up log4j accordingly.
|
protected Appender |
findAppenderByName(org.w3c.dom.Document doc,
java.lang.String appenderName)
Used internally to parse appenders by IDREF name.
|
protected Appender |
findAppenderByReference(org.w3c.dom.Element appenderRef)
Used internally to parse appenders by IDREF element.
|
protected void |
parse(org.w3c.dom.Element element)
Used internally to configure the log4j framework by parsing a DOM
tree of XML elements based on log4j.dtd.
|
protected Appender |
parseAppender(org.w3c.dom.Element appenderElement)
Used internally to parse an appender element.
|
protected void |
parseCategory(org.w3c.dom.Element loggerElement)
Used internally to parse an category element.
|
protected void |
parseCategoryFactory(org.w3c.dom.Element factoryElement)
Used internally to parse the category factory element.
|
protected void |
parseChildrenOfLoggerElement(org.w3c.dom.Element catElement,
Logger cat,
boolean isRoot)
Used internally to parse the children of a category element.
|
static java.lang.Object |
parseElement(org.w3c.dom.Element element,
java.util.Properties props,
java.lang.Class expectedClass)
Creates an object and processes any nested param elements
but does not call activateOptions.
|
protected void |
parseErrorHandler(org.w3c.dom.Element element,
Appender appender)
Used internally to parse an
ErrorHandler element. |
protected void |
parseFilters(org.w3c.dom.Element element,
Appender appender)
Used internally to parse a filter element.
|
protected Layout |
parseLayout(org.w3c.dom.Element layout_element)
Used internally to parse a layout element.
|
protected void |
parseLevel(org.w3c.dom.Element element,
Logger logger,
boolean isRoot)
Used internally to parse a level element.
|
protected void |
parseRenderer(org.w3c.dom.Element element) |
protected void |
parseRoot(org.w3c.dom.Element rootElement)
Used internally to parse the roor category element.
|
protected ThrowableRenderer |
parseThrowableRenderer(org.w3c.dom.Element element)
Parses throwable renderer.
|
private static void |
parseUnrecognizedElement(java.lang.Object instance,
org.w3c.dom.Element element,
java.util.Properties props)
Delegates unrecognized content to created instance if
it supports UnrecognizedElementParser.
|
private static void |
quietParseUnrecognizedElement(java.lang.Object instance,
org.w3c.dom.Element element,
java.util.Properties props)
Delegates unrecognized content to created instance if
it supports UnrecognizedElementParser and catches and
logs any exception.
|
protected void |
setParameter(org.w3c.dom.Element elem,
PropertySetter propSetter) |
static void |
setParameter(org.w3c.dom.Element elem,
PropertySetter propSetter,
java.util.Properties props)
Sets a parameter based from configuration file content.
|
protected java.lang.String |
subst(java.lang.String value) |
static java.lang.String |
subst(java.lang.String value,
java.util.Properties props)
Substitutes property value for any references in expression.
|
static final java.lang.String CONFIGURATION_TAG
static final java.lang.String OLD_CONFIGURATION_TAG
static final java.lang.String RENDERER_TAG
private static final java.lang.String THROWABLE_RENDERER_TAG
static final java.lang.String APPENDER_TAG
static final java.lang.String APPENDER_REF_TAG
static final java.lang.String PARAM_TAG
static final java.lang.String LAYOUT_TAG
static final java.lang.String CATEGORY
static final java.lang.String LOGGER
static final java.lang.String LOGGER_REF
static final java.lang.String CATEGORY_FACTORY_TAG
static final java.lang.String LOGGER_FACTORY_TAG
static final java.lang.String NAME_ATTR
static final java.lang.String CLASS_ATTR
static final java.lang.String VALUE_ATTR
static final java.lang.String ROOT_TAG
static final java.lang.String ROOT_REF
static final java.lang.String LEVEL_TAG
static final java.lang.String PRIORITY_TAG
static final java.lang.String FILTER_TAG
static final java.lang.String ERROR_HANDLER_TAG
static final java.lang.String REF_ATTR
static final java.lang.String ADDITIVITY_ATTR
static final java.lang.String THRESHOLD_ATTR
static final java.lang.String CONFIG_DEBUG_ATTR
static final java.lang.String INTERNAL_DEBUG_ATTR
private static final java.lang.String RESET_ATTR
static final java.lang.String RENDERING_CLASS_ATTR
static final java.lang.String RENDERED_CLASS_ATTR
static final java.lang.String EMPTY_STR
static final java.lang.Class[] ONE_STRING_PARAM
static final java.lang.String dbfKey
java.util.Hashtable appenderBag
java.util.Properties props
LoggerRepository repository
protected LoggerFactory catFactory
protected Appender findAppenderByName(org.w3c.dom.Document doc, java.lang.String appenderName)
protected Appender findAppenderByReference(org.w3c.dom.Element appenderRef)
private static void parseUnrecognizedElement(java.lang.Object instance, org.w3c.dom.Element element, java.util.Properties props) throws java.lang.Exception
instance
- instance, may be null.element
- element, may not be null.props
- propertiesjava.io.IOException
- thrown if configuration of owner object
should be abandoned.java.lang.Exception
private static void quietParseUnrecognizedElement(java.lang.Object instance, org.w3c.dom.Element element, java.util.Properties props)
instance
- instance, may be null.element
- element, may not be null.props
- propertiesprotected Appender parseAppender(org.w3c.dom.Element appenderElement)
protected void parseErrorHandler(org.w3c.dom.Element element, Appender appender)
ErrorHandler
element.protected void parseFilters(org.w3c.dom.Element element, Appender appender)
protected void parseCategory(org.w3c.dom.Element loggerElement)
protected void parseCategoryFactory(org.w3c.dom.Element factoryElement)
protected void parseRoot(org.w3c.dom.Element rootElement)
protected void parseChildrenOfLoggerElement(org.w3c.dom.Element catElement, Logger cat, boolean isRoot)
protected Layout parseLayout(org.w3c.dom.Element layout_element)
protected void parseRenderer(org.w3c.dom.Element element)
protected ThrowableRenderer parseThrowableRenderer(org.w3c.dom.Element element)
element
- throwableRenderer element.protected void parseLevel(org.w3c.dom.Element element, Logger logger, boolean isRoot)
protected void setParameter(org.w3c.dom.Element elem, PropertySetter propSetter)
public static void configure(org.w3c.dom.Element element)
configuration
element as
defined in the log4j.dtd.public static void configureAndWatch(java.lang.String configFilename)
configureAndWatch(String, long)
except that the
default delay as defined by FileWatchdog.DEFAULT_DELAY
is
used.configFilename
- A log4j configuration file in XML format.public static void configureAndWatch(java.lang.String configFilename, long delay)
configFilename
if it
exists. Moreover, a thread will be created that will periodically
check if configFilename
has been created or
modified. The period is determined by the delay
argument. If a change or file creation is detected, then
configFilename
is read to configure log4j.configFilename
- A log4j configuration file in XML format.delay
- The delay in milliseconds to wait between each check.public void doConfigure(java.lang.String filename, LoggerRepository repository)
public void doConfigure(java.net.URL url, LoggerRepository repository)
Configurator
hierarchy
parameter.doConfigure
in interface Configurator
url
- The URL to parserepository
- The hierarchy to operation upon.public void doConfigure(java.io.InputStream inputStream, LoggerRepository repository) throws javax.xml.parsers.FactoryConfigurationError
doConfigure
in interface Configurator
inputStream
- The InputStream to parserepository
- The hierarchy to operation upon.javax.xml.parsers.FactoryConfigurationError
public void doConfigure(java.io.Reader reader, LoggerRepository repository) throws javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.FactoryConfigurationError
protected void doConfigure(org.xml.sax.InputSource inputSource, LoggerRepository repository) throws javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.FactoryConfigurationError
private final void doConfigure(DOMConfigurator.ParseAction action, LoggerRepository repository) throws javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.FactoryConfigurationError
public void doConfigure(org.w3c.dom.Element element, LoggerRepository repository)
public static void configure(java.lang.String filename) throws javax.xml.parsers.FactoryConfigurationError
doConfigure(String, LoggerRepository)
.javax.xml.parsers.FactoryConfigurationError
public static void configure(java.net.URL url) throws javax.xml.parsers.FactoryConfigurationError
doConfigure(URL, LoggerRepository)
.javax.xml.parsers.FactoryConfigurationError
protected void parse(org.w3c.dom.Element element)
protected java.lang.String subst(java.lang.String value)
public static java.lang.String subst(java.lang.String value, java.util.Properties props)
value
- value from configuration file, may contain
literal text, property references or bothprops
- properties.public static void setParameter(org.w3c.dom.Element elem, PropertySetter propSetter, java.util.Properties props)
elem
- param element, may not be null.propSetter
- property setter, may not be null.props
- propertiespublic static java.lang.Object parseElement(org.w3c.dom.Element element, java.util.Properties props, java.lang.Class expectedClass) throws java.lang.Exception
element
- element, may not be null.props
- propertiesexpectedClass
- interface or class expected to be implemented
by created classjava.lang.Exception
- thrown if the contain object should be abandoned.