在运行时添加,启用,禁用log4cxx ConsoleAppender

时间:2013-05-08 18:05:14

标签: c++ c log4cxx

如何在应用程序中动态地将log4cxx日志记录打开和关闭?

这里的目标是处理用过的选择,命令行parm或GUI输入或其他。因此,在一个假设的主循环中:

if ( userWantsToStartConsoleLogger )
    ConsoleLogger( true );
if ( userWantsToStopConsoleLogger )
    ConsoleLogger( false );

我的日志设置是:

#include <log4cxx/logger.h>
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/helpers/exception.h>

int main( int argc, char** argv )
{
   const log4cxx::LoggerPtr   logger;
   log4cxx::PropertyConfigurator::configure("./logs.config");
}

./logs.config的样子:

log4j.rootLogger=INFO, File

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.File=org.apache.log4j.RollingFileAppender
log4j.appender.File.File=logs/system.logs
log4j.appender.File.MaxFileSize=1MB
log4j.appender.File.MaxBackupIndex=10
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{MM/dd/yyyy HH:mm:ss:SSS a}  %p  %c  %m%n

注意:目前,我必须在, stdoutFILE之后添加rootlogger=才能完成此操作。

在这种情况下,当然,问题是,我的ConsoleLogger()函数会发生什么?

0 个答案:

没有答案