Log4cplus没有编译为descirbed

时间:2017-11-04 14:55:33

标签: c++ log4cplus

#include <log4cplus/configurator.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/initializer.h>
#include <log4cplus/layout.h>
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>

#include <string>

int main(int argc, char* argv[]) {

    log4cplus::SharedAppenderPtr appender(new log4cplus::FileAppender("test.log"));
    appender->setName("mainLog");

    std::string pattern = "[%-5p][%D{%Y/%m/%d %H:%M:%S:%q}][%-l][%t] %m%n";
    std::auto_ptr<log4cplus::Layout> layout(new log4cplus::PatternLayout(pattern));
    appender->setLayout(layout);

    mainLog = log4cplus::Logger::getInstance(LOG4CPLUS_TEXT("mainLog"));
    mainLog.addAppender(appender);

    LOG4CPLUS_INFO(mainLog, LOG4CPLUS_TEXT("Execution started!"));
    return 0;
}

上面的代码应该按照我在这个主题上找到的每个指南工作,但它不会编译。这一行:

appender->setLayout(layout);

强调layout并说:

cannot convert argument 1 from 'std::auto_ptr<log4cplus::Layout>' to 'std::unique_ptr<log4cplus::Layout,std::default_delete<_Ty>>

是什么给出了?

0 个答案:

没有答案