当我们设计后台程序时,日志是获知程序的唯一的维护手段,所以日志很重要,是程序稳定运行和维护升级的唯一通道。

         在我用过的日志框架中,poco提供的日志方法,简单明了,使用方便,很值得推广使用。

一 能过简单的例子,学会初步使用

         下面是使用的例子,主要是先学会简单的使用方法,然后再好好理清这些知识点:

#include "Poco/FileChannel.h"
#include "Poco/Message.h"

using Poco::Logger;
using Poco::PatternFormatter;
using Poco::FormattingChannel;
using Poco::ConsoleChannel;
using Poco::FileChannel;
using Poco::Message;

int main(int argc, char** argv)
{
   //终端日志纪录
    FormattingChannel* pFCConsole = new FormattingChannel(new PatternFormatter("%s: %p: %t"));
    pFCConsole->setChannel(new ConsoleChannel);
    pFCConsole->open();
    //文件日志纪录
    FormattingChannel* pFCFile = new FormattingChannel(new PatternFormatter("%Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t"));
    pFCFile->setChannel(new FileChannel("sample.log"));
    pFCFile->open();

    // 建立两种日志的对象
    Logger& consoleLogger = Logger::create("ConsoleLogger", pFCConsole, Message::PRIO_INFORMATION);
    Logger& fileLogger    = Logger::create("FileLogger", pFCFile, Message::PRIO_WARNING);

    // 纪录错误日志
    consoleLogger.error("An error message");
    fileLogger.error("An error message");
    //纪录报警日志 
    consoleLogger.warning("A warning message");
    fileLogger.error("A warning message");
   //纪录信息日志 
    consoleLogger.information("An information message");
    fileLogger.information("An information message");
    //方法二
    poco_information(consoleLogger, "Another informational message");
    poco_warning_f2(consoleLogger, "A warning message with arguments: %d, %d", 1, 2);
    //方法三
    Logger::get("ConsoleLogger").error("Another error message");
  
    return 0;
}

程序的运行结果:

终端上输出:

ConsoleLogger: Error: An error message
ConsoleLogger: Warning: A warning message
ConsoleLogger: Information: An information message
ConsoleLogger: Information: Another informational message
ConsoleLogger: Warning: A warning message with arguments: 1, 2
ConsoleLogger: Error: Another error message

日志文件sample.log

2015-09-28 15:28:31.3 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:28:31.3 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-09-28 15:33:15.3 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:33:15.3 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-09-28 15:33:25.5 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:33:25.5 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-09-28 15:33:26.8 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:33:26.8 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-09-28 15:34:46.3 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:34:46.3 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-09-28 15:43:58.3 linuxer-Rev-1-0:FileLogger:E:An error message
2015-09-28 15:43:58.3 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 12:58:46.6 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 12:58:46.6 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:46.3 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:46.3 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:47.7 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:47.7 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:48.8 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:48.8 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:49.2 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:49.2 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:49.5 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:49.5 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:49.7 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:49.7 linuxer-Rev-1-0:FileLogger:E:A warning message
2015-10-14 13:36:51.1 linuxer-Rev-1-0:FileLogger:E:An error message
2015-10-14 13:36:51.1 linuxer-Rev-1-0:FileLogger:E:A warning message

二 其它知识点(待续)