Package org.apache.log4j.xml
Class DOMConfigurator
- java.lang.Object
-
- org.apache.log4j.xml.DOMConfigurator
-
- All Implemented Interfaces:
org.apache.log4j.spi.Configurator
public class DOMConfigurator extends Object implements org.apache.log4j.spi.Configurator
Use this class to initialize the log4j environment using a DOM tree.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
debugattribute in thelog4j:configurationelement. As in<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/"> ... </log4j:configuration>
There are sample XML files included in the package.
- Since:
- 0.8.3
- Author:
- Christopher Taylor, Ceki Gülcü, Anders Kristensen
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.log4j.spi.LoggerFactorycatFactory
-
Constructor Summary
Constructors Constructor Description DOMConfigurator()No argument constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidconfigure(String filename)A static version ofdoConfigure(String, LoggerRepository).static voidconfigure(URL url)A static version ofdoConfigure(URL, LoggerRepository).static voidconfigure(Element element)Configure log4j using aconfigurationelement as defined in the log4j.dtd.static voidconfigureAndWatch(String configFilename)LikeconfigureAndWatch(String, long)except that the default delay as defined byFileWatchdog.DEFAULT_DELAYis used.static voidconfigureAndWatch(String configFilename, long delay)Read the configuration fileconfigFilenameif it exists.voiddoConfigure(InputStream inputStream, org.apache.log4j.spi.LoggerRepository repository)Configure log4j by reading in a log4j.dtd compliant XML configuration file.voiddoConfigure(Reader reader, org.apache.log4j.spi.LoggerRepository repository)Configure log4j by reading in a log4j.dtd compliant XML configuration file.voiddoConfigure(String filename, org.apache.log4j.spi.LoggerRepository repository)voiddoConfigure(URL url, org.apache.log4j.spi.LoggerRepository repository)voiddoConfigure(Element element, org.apache.log4j.spi.LoggerRepository repository)Configure by taking in an DOM element.protected voiddoConfigure(InputSource inputSource, org.apache.log4j.spi.LoggerRepository repository)Configure log4j by reading in a log4j.dtd compliant XML configuration file.protected org.apache.log4j.AppenderfindAppenderByName(Document doc, String appenderName)Used internally to parse appenders by IDREF name.protected org.apache.log4j.AppenderfindAppenderByReference(Element appenderRef)Used internally to parse appenders by IDREF element.protected voidparse(Element element)Used internally to configure the log4j framework by parsing a DOM tree of XML elements based on log4j.dtd.protected org.apache.log4j.AppenderparseAppender(Element appenderElement)Used internally to parse an appender element.protected voidparseCategory(Element loggerElement)Used internally to parse an category element.protected voidparseCategoryFactory(Element factoryElement)Used internally to parse the category factory element.protected voidparseChildrenOfLoggerElement(Element catElement, Logger cat, boolean isRoot)Used internally to parse the children of a category element.static ObjectparseElement(Element element, Properties props, Class expectedClass)Creates an object and processes any nested param elements but does not call activateOptions.protected voidparseErrorHandler(Element element, org.apache.log4j.Appender appender)Used internally to parse anErrorHandlerelement.protected voidparseFilters(Element element, org.apache.log4j.Appender appender)Used internally to parse a filter element.protected org.apache.log4j.LayoutparseLayout(Element layout_element)Used internally to parse a layout element.protected voidparseLevel(Element element, Logger logger, boolean isRoot)Used internally to parse a level element.protected voidparseRenderer(Element element)protected voidparseRoot(Element rootElement)Used internally to parse the roor category element.protected org.apache.log4j.spi.ThrowableRendererparseThrowableRenderer(Element element)Parses throwable renderer.protected voidsetParameter(Element elem, org.apache.log4j.config.PropertySetter propSetter)static voidsetParameter(Element elem, org.apache.log4j.config.PropertySetter propSetter, Properties props)Sets a parameter based from configuration file content.protected Stringsubst(String value)static Stringsubst(String value, Properties props)Substitutes property value for any references in expression.
-
-
-
Method Detail
-
findAppenderByName
protected org.apache.log4j.Appender findAppenderByName(Document doc, String appenderName)
Used internally to parse appenders by IDREF name.
-
findAppenderByReference
protected org.apache.log4j.Appender findAppenderByReference(Element appenderRef)
Used internally to parse appenders by IDREF element.
-
parseAppender
protected org.apache.log4j.Appender parseAppender(Element appenderElement)
Used internally to parse an appender element.
-
parseErrorHandler
protected void parseErrorHandler(Element element, org.apache.log4j.Appender appender)
Used internally to parse anErrorHandlerelement.
-
parseFilters
protected void parseFilters(Element element, org.apache.log4j.Appender appender)
Used internally to parse a filter element.
-
parseCategory
protected void parseCategory(Element loggerElement)
Used internally to parse an category element.
-
parseCategoryFactory
protected void parseCategoryFactory(Element factoryElement)
Used internally to parse the category factory element.
-
parseRoot
protected void parseRoot(Element rootElement)
Used internally to parse the roor category element.
-
parseChildrenOfLoggerElement
protected void parseChildrenOfLoggerElement(Element catElement, Logger cat, boolean isRoot)
Used internally to parse the children of a category element.
-
parseLayout
protected org.apache.log4j.Layout parseLayout(Element layout_element)
Used internally to parse a layout element.
-
parseRenderer
protected void parseRenderer(Element element)
-
parseThrowableRenderer
protected org.apache.log4j.spi.ThrowableRenderer parseThrowableRenderer(Element element)
Parses throwable renderer.- Parameters:
element- throwableRenderer element.- Returns:
- configured throwable renderer.
- Since:
- 1.2.16.
-
parseLevel
protected void parseLevel(Element element, Logger logger, boolean isRoot)
Used internally to parse a level element.
-
setParameter
protected void setParameter(Element elem, org.apache.log4j.config.PropertySetter propSetter)
-
configure
public static void configure(Element element)
Configure log4j using aconfigurationelement as defined in the log4j.dtd.
-
configureAndWatch
public static void configureAndWatch(String configFilename)
LikeconfigureAndWatch(String, long)except that the default delay as defined byFileWatchdog.DEFAULT_DELAYis used.- Parameters:
configFilename- A log4j configuration file in XML format.
-
configureAndWatch
public static void configureAndWatch(String configFilename, long delay)
Read the configuration fileconfigFilenameif it exists. Moreover, a thread will be created that will periodically check ifconfigFilenamehas been created or modified. The period is determined by thedelayargument. If a change or file creation is detected, thenconfigFilenameis read to configure log4j.- Parameters:
configFilename- A log4j configuration file in XML format.delay- The delay in milliseconds to wait between each check.
-
doConfigure
public void doConfigure(String filename, org.apache.log4j.spi.LoggerRepository repository)
-
doConfigure
public void doConfigure(URL url, org.apache.log4j.spi.LoggerRepository repository)
- Specified by:
doConfigurein interfaceorg.apache.log4j.spi.Configurator
-
doConfigure
public void doConfigure(InputStream inputStream, org.apache.log4j.spi.LoggerRepository repository) throws FactoryConfigurationError
Configure log4j by reading in a log4j.dtd compliant XML configuration file.- Specified by:
doConfigurein interfaceorg.apache.log4j.spi.Configurator- Throws:
FactoryConfigurationError
-
doConfigure
public void doConfigure(Reader reader, org.apache.log4j.spi.LoggerRepository repository) throws FactoryConfigurationError
Configure log4j by reading in a log4j.dtd compliant XML configuration file.- Throws:
FactoryConfigurationError
-
doConfigure
protected void doConfigure(InputSource inputSource, org.apache.log4j.spi.LoggerRepository repository) throws FactoryConfigurationError
Configure log4j by reading in a log4j.dtd compliant XML configuration file.- Throws:
FactoryConfigurationError
-
doConfigure
public void doConfigure(Element element, org.apache.log4j.spi.LoggerRepository repository)
Configure by taking in an DOM element.
-
configure
public static void configure(String filename) throws FactoryConfigurationError
A static version ofdoConfigure(String, LoggerRepository).- Throws:
FactoryConfigurationError
-
configure
public static void configure(URL url) throws FactoryConfigurationError
A static version ofdoConfigure(URL, LoggerRepository).- Throws:
FactoryConfigurationError
-
parse
protected void parse(Element element)
Used internally to configure the log4j framework by parsing a DOM tree of XML elements based on log4j.dtd.
-
subst
public static String subst(String value, Properties props)
Substitutes property value for any references in expression.- Parameters:
value- value from configuration file, may contain literal text, property references or bothprops- properties.- Returns:
- evaluated expression, may still contain expressions if unable to expand.
- Since:
- 1.2.15
-
setParameter
public static void setParameter(Element elem, org.apache.log4j.config.PropertySetter propSetter, Properties props)
Sets a parameter based from configuration file content.- Parameters:
elem- param element, may not be null.propSetter- property setter, may not be null.props- properties- Since:
- 1.2.15
-
parseElement
public static Object parseElement(Element element, Properties props, Class expectedClass) throws Exception
Creates an object and processes any nested param elements but does not call activateOptions. If the class also supports UnrecognizedElementParser, the parseUnrecognizedElement method will be call for any child elements other than param.- Parameters:
element- element, may not be null.props- propertiesexpectedClass- interface or class expected to be implemented by created class- Returns:
- created class or null.
- Throws:
Exception- thrown if the contain object should be abandoned.- Since:
- 1.2.15
-
-