当我们设计后台程序时,日志是获知程序的唯一的维护手段,所以日志很重要,是程序稳定运行和维护升级的唯一通道。
在我用过的日志框架中,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
二 其它知识点(待续)
转载于:https://blog.51cto.com/qtlinux/1702976