为什么要记录重复的消息

Dav*_*veR 5 c++ logging log4cplus

我是log4cplus的新手.我有以下配置:

log4cplus.rootLogger=TRACE, STDOUT 

log4cplus.logger.zios.utl.Thread=DEBUG, STDOUT

log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=%d{%H:%M:%S} [%t] - %m%n
Run Code Online (Sandbox Code Playgroud)

我用以下代码加载:

try {
    log4cplus::PropertyConfigurator::doConfigure("log4cplus.properties");
} catch (...) {
    cout << "exception occured while opening log4cplus.properties" << endl;
}
Run Code Online (Sandbox Code Playgroud)

它加载时不会发生任何事故,但每当我记录某些内容时,我会在日志中显示两条消息.例如,我使用此代码进行记录:

Logger log = Logger::getInstance("zios.utl.Thread");
LOG4CPLUS_DEBUG(log, "Thread created");
Run Code Online (Sandbox Code Playgroud)

以及日志中显示的内容是:

17:10:48 [3075459952] - Thread created
17:10:48 [3075459952] - Thread created
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

wil*_*ilx 3

您有一个附加程序,并且使用它两次,用于两个记录器:

log4cplus.rootLogger=TRACE, STDOUT 
log4cplus.logger.zios.utl.Thread=DEBUG, STDOUT
Run Code Online (Sandbox Code Playgroud)

这意味着附加程序附加到根记录器和zios.utl.Thread记录器。