使用Poco :: Logger进行整个项目

时间:2013-01-01 20:36:24

标签: c++ logging poco-libraries

AutoPtr<SplitterChannel> splitterChannel(new SplitterChannel());

        AutoPtr<Channel> consoleChannel(new ConsoleChannel());
        AutoPtr<Channel> fileChannel(new FileChannel("Arcanite.log"));
        AutoPtr<FileChannel> rotatedFileChannel(new FileChannel("Arcanite_R.log"));

        rotatedFileChannel->setProperty("rotation", "100");
        rotatedFileChannel->setProperty("archive", "timestamp");

        splitterChannel->addChannel(consoleChannel);
        splitterChannel->addChannel(fileChannel);
        splitterChannel->addChannel(rotatedFileChannel);

        //"%d-%m-%Y %H:%M:%S: %t"
        AutoPtr<Formatter> formatter(new PatternFormatter("%d-%m-%Y %H:%M:%S %s: %t"));
        AutoPtr<Channel> formattingChannel(new FormattingChannel(formatter, splitterChannel));


        Logger& sLog = Logger::create("LogChan", formattingChannel, Message::PRIO_TRACE);

我写了我的记录器,我想用于我的服务器,多个类。我怎样才能适应这个呢?这可能是基本的c ++,但我似乎错过了一些课程:P

1 个答案:

答案 0 :(得分:4)

Class Poco :: Logger作为日志框架。

定义具有固定名称的记录器实例(在示例中为“LogChan”)时,可以从所有类访问它。所以你应该做一个

Logger& logger = Logger::get("logChan"); 

从其他类中获取记录器参考。

我想下面它使用单例模式生成记录器池。