Document directory
- Prerequisites
- Configure sub-logger
- Complete configuration file used in the freejudger Project
- Welcome to join
C ++ open-source cross-platform OJ system question determination core freejudger (iii) -- log4cxx uses multiple log files at the same time
By Ma Dongliang (cream Loki)
One man's war (http://blog.csdn.net/MDL13412)
Prerequisites
- Log4cxxYou can use the configuration file to setLog4j compatibility;
- Log4cxxLibrary to set the log stream, you only need to changeAppenderAttribute;
- Log4cxxSupportedLogger Inheritance MechanismBy defaultInherit the parent LoggerOfAppender, Because you wantLog stream output to multiple filesTherefore, you needSet the inherited attribute of logger to false..
Configure sub-logger
To maximize flexibility,Log4cxxIntroducedSub-loggerThe concept of ownership andParent LoggerDifferent behavior, and in programming languagesOOPConsistent concept.
The following is a definitionSub-loggerCode, whereAp0YesLogger0UsedAppender:
log4j.logger.logger0 = TRACE, ap0
SetSub-loggerDo not inheritParent LoggerOfAppender:
log4j.additivity.logger0=false
SetSub-loggerFor the log file used, the following code willLogger0Set the log file0. Log:
log4j.appender.ap0.File=./0.log
Obtain the sub-logger instance in the program
First, load the configuration file:
Log4cxx: propertyconfigurator: Configure (configuration file name );
ObtainSub-loggerInstance:
Log4cxx: loggerptr logger = log4cxx: logger: getlogger (sub-logger name [for example, "logger0"] above);
Complete configuration file used in the freejudger Project
The following code configures eight
Sub-logger, Used for the query thread log in the freejudger project:
log4j.additivity.gather = falselog4j.rootLogger=TRACElog4j.logger.logger0 = TRACE, ap0log4j.logger.logger1 = TRACE, ap1log4j.logger.logger2 = TRACE, ap2log4j.logger.logger3 = TRACE, ap3log4j.logger.logger4 = TRACE, ap4log4j.logger.logger5 = TRACE, ap5log4j.logger.logger6 = TRACE, ap6log4j.logger.logger7 = TRACE, ap7log4j.logger.logger8 = TRACE, ap8log4j.additivity.logger0=falselog4j.additivity.logger1=falselog4j.additivity.logger2=falselog4j.additivity.logger3=falselog4j.additivity.logger4=falselog4j.additivity.logger5=falselog4j.additivity.logger6=falselog4j.additivity.logger7=falselog4j.additivity.logger8=falselog4j.appender.logfile.encoding=UTF-8log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%nlog4j.appender.R.MaxFileSize=100KBlog4j.appender.ap0=org.apache.log4j.RollingFileAppenderlog4j.appender.ap0.ImmediateFlush=true log4j.appender.ap0.File=./0.loglog4j.appender.ap0.MaxBackupIndex=10log4j.appender.ap0.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap0.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap1=org.apache.log4j.RollingFileAppenderlog4j.appender.ap1.ImmediateFlush=true log4j.appender.ap1.File=./1.loglog4j.appender.ap1.MaxBackupIndex=10log4j.appender.ap1.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap1.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap2=org.apache.log4j.RollingFileAppenderlog4j.appender.ap2.ImmediateFlush=true log4j.appender.ap2.File=./2.loglog4j.appender.ap2.MaxBackupIndex=10log4j.appender.ap2.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap2.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap3=org.apache.log4j.RollingFileAppenderlog4j.appender.ap3.ImmediateFlush=true log4j.appender.ap3.File=./3.loglog4j.appender.ap3.MaxBackupIndex=10log4j.appender.ap3.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap3.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap4=org.apache.log4j.RollingFileAppenderlog4j.appender.ap4.ImmediateFlush=true log4j.appender.ap4.File=./4.loglog4j.appender.ap4.MaxBackupIndex=10log4j.appender.ap4.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap4.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap5=org.apache.log4j.RollingFileAppenderlog4j.appender.ap5.ImmediateFlush=true log4j.appender.ap5.File=./5.loglog4j.appender.ap5.MaxBackupIndex=10log4j.appender.ap5.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap5.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap6=org.apache.log4j.RollingFileAppenderlog4j.appender.ap6.ImmediateFlush=true log4j.appender.ap6.File=./6.loglog4j.appender.ap6.MaxBackupIndex=10log4j.appender.ap6.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap6.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap7=org.apache.log4j.RollingFileAppenderlog4j.appender.ap7.ImmediateFlush=true log4j.appender.ap7.File=./7.loglog4j.appender.ap7.MaxBackupIndex=10log4j.appender.ap7.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap7.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%nlog4j.appender.ap8=org.apache.log4j.RollingFileAppenderlog4j.appender.ap8.ImmediateFlush=true log4j.appender.ap8.File=./8.loglog4j.appender.ap8.MaxBackupIndex=10log4j.appender.ap8.layout=org.apache.log4j.PatternLayoutlog4j.appender.ap8.layout.ConversionPattern=%5p %d{HH:mm:ss} -- %m%n
Welcome to join
Group 117975329, Verification informationCsdn.
Main maintainer:
- Zhou Bao you_lan_hai@foxmail.com
- Ma Dongliang mdl2009@vip.qq.com