log4cplus.appender.appenderName.layout=fully.qualified.name.of.layout.class
log4cplus.appender.appenderName.layout.option1=value1
....
log4cplus.appender.appenderName.layout.optionN=valueN
log4cplus.rootLogger=[LogLevel], appenderName, appenderName, ...
This syntax means that an optional LogLevel value can be supplied followed by appender names separated by commas.
The LogLevel value can consist of the string values FATAL, ERROR, WARN, INFO, DEBUG or a custom LogLevel value.
If a LogLevel value is specified, then the root LogLevel is set to the corresponding LogLevel. If no LogLevel value is specified, then the root LogLevel remains untouched.
The root logger can be assigned multiple appenders.
Each appenderName (separated by commas) will be added to the root logger. The named appender is defined using the appender syntax defined above.
For non-root loggers the syntax is almost the same:
log4cplus.logger.logger_name=[LogLevel|INHERITED], appenderName, appenderName, ...
The meaning of the optional LogLevel value is discussed above in relation to the root logger. In addition however, the value INHERITED can be specified meaning that the named logger should inherit its LogLevel from the logger hierarchy.
By default loggers inherit their LogLevel from the hierarchy. However, if you set the LogLevel of a logger and later decide that that logger should inherit its LogLevel, then you should specify INHERITED as the value for the LogLevel value.
Similar to the root logger syntax, each appenderName (separated by commas) will be attached to the named logger.
See the appender additivity rule in the user manual for the meaning of the additivity
flag.
The user can override any of the Hierarchy#disable family of methods by setting the a key "log4cplus.disableOverride" to true
or any value other than false. As in
log4cplus.disableOverride=true
Example
An example configuration is given below.
# Set options for appender named "A1".
#
Appender "A1" will be a SyslogAppender
log4cplus.appender.A1=log4cplus::SyslogAppender
# The syslog daemon resides on www.abc.net
log4cplus.appender.A1.SyslogHost=www.abc.net
# A1's layout is a
PatternLayout, using the conversion pattern
#
r -5p c{2} M.L x - m
. Thus, the log output will
# include # the relative time since the start of the application in
# milliseconds, followed by the LogLevel of the log request,
# followed by the two rightmost components of the logger name,
# followed by the callers method name, followed by the line number,
# the nested disgnostic context and finally the message itself.
# Refer to the documentation of
PatternLayout for further information
# on the syntax of the ConversionPattern key.
log4cplus.appender.A1.layout=log4cplus::PatternLayout
log4cplus.appender.A1.layout.ConversionPattern=%-4r -5p c{2} M.L x - m
# Set options for appender named "A2"
# A2 should be a
RollingFileAppender, with maximum file size of 10 MB
# using at most one backup file. A2's layout is TTCC, using the
# ISO8061 date format with context printing enabled.
log4cplus.appender.A2=log4cplus::RollingFileAppender
log4cplus.appender.A2.MaxFileSize=10MB
log4cplus.appender.A2.MaxBackupIndex=1
log4cplus.appender.A2.layout=log4cplus::TTCCLayout
log4cplus.appender.A2.layout.ContextPrinting=enabled
log4cplus.appender.A2.layout.DateFormat=ISO8601
# Root logger set to DEBUG using the A2 appender defined above.
log4cplus.rootLogger=DEBUG, A2
#
Logger definitions:
# The SECURITY logger inherits is LogLevel from root. However, it's output
# will go to A1 appender defined above. It's additivity is non-cumulative.
log4cplus.logger.SECURITY=INHERIT, A1
log4cplus.additivity.SECURITY=false
# Only warnings or above will be logged for the logger "SECURITY.access".
# Output will go to A1.
log4cplus.logger.SECURITY.access=WARN
# The logger "class.of.the.day" inherits its LogLevel from the
# logger hierarchy. Output will go to the appender's of the root
# logger, A2 in this case.
log4cplus.logger.class.of.the.day=INHERIT
Refer to the setOption method in each Appender and Layout for class specific options.
Use the #
character at the beginning of a line for comments.