当我们设计后台程序时,日志是获知程序的唯一的维护手段,所以日志很重要,是程序稳定运行和维护升级的唯一通道。
在我用过的日志框架中,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
二 其它知识点(待续)
时间: 2024-10-14 12:07:53