# DOMConfigurator Class Reference

Inherits Configurator, and ObjectImpl.

List of all members.

## Detailed Description

Use this class to initialize the log4cxx environment using a DOM tree.

Sometimes it is useful to see how log4cxx is reading configuration files. You can enable log4cxx internal logging by setting the `debug` attribute in the `log4cxx` 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.

## Public Member Functions

| DOMConfigurator ()
| DOMConfigurator (log4cxx::helpers::Pool &p)
void | addRef () const
void | releaseRef () const
void | doConfigure (const File &filename, spi::LoggerRepositoryPtr &repository)
| Interpret the XML file pointed by `filename` and set up log4cxx accordingly.

## Static Public Member Functions

static void | configure (const std::string &filename)
| A static version of doConfigure.
static void | configure (const std::wstring &filename)
static void | configure (const std::basic_string< UniChar > &filename)
static void | configure (const CFStringRef &filename)
static void | configureAndWatch (const std::string &configFilename)
| Like configureAndWatch(const std::string& configFilename, long delay) except that the default delay as defined by log4cxx::helpers::FileWatchdog::DEFAULT_DELAY is used.
static void | configureAndWatch (const std::wstring &configFilename)
static void | configureAndWatch (const std::basic_string< UniChar > &configFilename)
static void | configureAndWatch (const CFStringRef &configFilename)
static void | configureAndWatch (const std::string &configFilename, long delay)
| Read the configuration file `configFilename` if it exists.
static void | configureAndWatch (const std::wstring &configFilename, long delay)
static void | configureAndWatch (const std::basic_string< UniChar > &configFilename, long delay)
static void | configureAndWatch (const CFStringRef &configFilename, long delay)

## Protected Types

typedef std::map< LogString, AppenderPtr > | AppenderMap

## Protected Member Functions

AppenderPtr | findAppenderByName (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, apr_xml_doc *doc, const LogString &appenderName, AppenderMap &appenders)
| Used internally to parse appenders by IDREF name.
AppenderPtr | findAppenderByReference (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderRef, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse appenders by IDREF element.
AppenderPtr | parseAppender (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *appenderElement, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse an appender element.
void | parseErrorHandler (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, AppenderPtr &appender, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse an ErrorHandler element.
void | parseFilters (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, std::vector< log4cxx::spi::FilterPtr > &filters)
| Used internally to parse a filter element.
void | parseLogger (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *loggerElement, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse a logger element.
void | parseLoggerFactory (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
| Used internally to parse the logger factory element.
log4cxx::helpers::ObjectPtr | parseTriggeringPolicy (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
| Used internally to parse the logger factory element.
log4cxx::rolling::RollingPolicyPtr | parseRollingPolicy (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *factoryElement)
| Used internally to parse the logger factory element.
void | parseRoot (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *rootElement, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse the root logger element.
void | parseChildrenOfLoggerElement (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *catElement, LoggerPtr logger, bool isRoot, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to parse the children of a logger element.
LayoutPtr | parseLayout (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *layout_element)
| Used internally to parse a layout element.
void | parseLevel (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, LoggerPtr logger, bool isRoot)
| Used internally to parse a level element.
void | setParameter (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *elem, log4cxx::config::PropertySetter &propSetter)
void | parse (log4cxx::helpers::Pool &p, log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *element, apr_xml_doc *doc, AppenderMap &appenders)
| Used internally to configure the log4cxx framework from an in-memory representation of an XML document.
LogString | subst (const LogString &value)

## Static Protected Member Functions

static LogString | getAttribute (log4cxx::helpers::CharsetDecoderPtr &utf8Decoder, apr_xml_elem *, const std::string &attrName)

## Protected Attributes

helpers::Properties | props
spi::LoggerRepositoryPtr | repository
spi::LoggerFactoryPtr | loggerFactory

## Member Typedef Documentation

typedef std::map<LogString, AppenderPtr> AppenderMap `[protected]`

## Constructor & Destructor Documentation

DOMConfigurator | ( |  | ) |

DOMConfigurator | ( | log4cxx::helpers::Pool & | p | ) |

## Member Function Documentation

void addRef | ( |  | ) | const`[virtual]`

| Reimplemented from ObjectImpl.

static void configure | ( | const CFStringRef & | filename | ) | `[static]`

static void configure | ( | const std::basic_string< UniChar > & | filename | ) | `[static]`

static void configure | ( | const std::wstring & | filename | ) | `[static]`

static void configure | ( | const std::string & | filename | ) | `[static]`

| A static version of doConfigure.

static void configureAndWatch | ( | const CFStringRef & | configFilename,
|  | long | delay
| ) | `[static]`

static void configureAndWatch | ( | const std::basic_string< UniChar > & | configFilename,
|  | long | delay
| ) | `[static]`

static void configureAndWatch | ( | const std::wstring & | configFilename,
|  | long | delay
| ) | `[static]`

static void configureAndWatch | ( | const std::string & | configFilename,
|  | long | delay
| ) | `[static]`

Read the configuration file `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 log4cxx.

Parameters:

  | configFilename | A log4j configuration file in XML format.
  | delay | The delay in milliseconds to wait between each check.

static void configureAndWatch | ( | const CFStringRef & | configFilename | ) | `[static]`

static void configureAndWatch | ( | const std::basic_string< UniChar > & | configFilename | ) | `[static]`

static void configureAndWatch | ( | const std::wstring & | configFilename | ) | `[static]`

static void configureAndWatch | ( | const std::string & | configFilename | ) | `[static]`

Like configureAndWatch(const std::string& configFilename, long delay) except that the default delay as defined by log4cxx::helpers::FileWatchdog::DEFAULT_DELAY is used.

Parameters:

  | configFilename | A log4j configuration file in XML format.

void doConfigure | ( | const File & | filename,
|  | spi::LoggerRepositoryPtr & | repository
| ) | `[virtual]`

Interpret the XML file pointed by `filename` and set up log4cxx accordingly.

The configuration is done relative to the hierarchy parameter.

Parameters:

  | filename | The file to parse.
  | repository | The hierarchy to operation upon.

Implements Configurator.

AppenderPtr findAppenderByName | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | elem,
|  | apr_xml_doc * | doc,
|  | const LogString & | appenderName,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse appenders by IDREF name.

AppenderPtr findAppenderByReference | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | appenderRef,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse appenders by IDREF element.

static LogString getAttribute | ( | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | ,
|  | const std::string & | attrName
| ) | `[static, protected]`

void parse | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | element,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to configure the log4cxx framework from an in-memory representation of an XML document.

AppenderPtr parseAppender | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | appenderElement,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse an appender element.

void parseChildrenOfLoggerElement | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | catElement,
|  | LoggerPtr | logger,
|  | bool | isRoot,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse the children of a logger element.

void parseErrorHandler | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | element,
|  | AppenderPtr & | appender,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse an ErrorHandler element.

void parseFilters | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | element,
|  | std::vector< log4cxx::spi::FilterPtr > & | filters
| ) | `[protected]`

| Used internally to parse a filter element.

LayoutPtr parseLayout | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | layout_element
| ) | `[protected]`

| Used internally to parse a layout element.

void parseLevel | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | element,
|  | LoggerPtr | logger,
|  | bool | isRoot
| ) | `[protected]`

| Used internally to parse a level element.

void parseLogger | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | loggerElement,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse a logger element.

void parseLoggerFactory | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | factoryElement
| ) | `[protected]`

| Used internally to parse the logger factory element.

log4cxx::rolling::RollingPolicyPtr parseRollingPolicy | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | factoryElement
| ) | `[protected]`

| Used internally to parse the logger factory element.

void parseRoot | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | rootElement,
|  | apr_xml_doc * | doc,
|  | AppenderMap & | appenders
| ) | `[protected]`

| Used internally to parse the root logger element.

log4cxx::helpers::ObjectPtr parseTriggeringPolicy | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | factoryElement
| ) | `[protected]`

| Used internally to parse the logger factory element.

void releaseRef | ( |  | ) | const`[virtual]`

| Reimplemented from ObjectImpl.

void setParameter | ( | log4cxx::helpers::Pool & | p,
|  | log4cxx::helpers::CharsetDecoderPtr & | utf8Decoder,
|  | apr_xml_elem * | elem,
|  | log4cxx::config::PropertySetter & | propSetter
| ) | `[protected]`

LogString subst | ( | const LogString & | value | ) | `[protected]`

## Member Data Documentation

spi::LoggerFactoryPtr loggerFactory `[protected]`

helpers::Properties props `[protected]`

spi::LoggerRepositoryPtr repository `[protected]`

The documentation for this class was generated from the following file:

- domconfigurator.h