码迷,mamicode.com
首页 > 其他好文 > 详细

POCO日志库使用示例

时间:2014-05-13 08:51:14      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:poco   log   

版权所有,转载时请注明作者和出处 http://blog.csdn.net/jmppok/article/details/25598483


Poco是一个开源的C++库,各方面功能比较全面,包括日志\多线程\文件系统\定时器\网络\配之文件等,同时使用也十分简单.

本文对其中的日志模块进行了简单的试用.


1.使用示例

	Poco::AutoPtr<Poco::Util::PropertyFileConfiguration> pConf =  new Poco::Util::PropertyFileConfiguration("log_conf.properties");
	Poco::Util::LoggingConfigurator log_configurator; 
	log_configurator.configure(pConf);

	_log = &Poco::Logger::root();

	

	_log->debug("debug");

	_log->information("information");

	_log->warning("warning");

	_log->error("error");

	_log->fatal("fatal");

在代码中使用十分简单。


2.Log的配置文件

以上代码通过加载配置文件log_conf.propeties对其进行配置。

Poco本身对log配置文件似乎没有详细说明,不过可以通过阅读源代码总结出来。

下面是我整理的一个配置文件,其内容如下:

logging.formatters.f1.class = PatternFormatter
logging.formatters.f1.pattern = [%p %Y-%m-%d %H:%M:%S %i %P %I]\n%U:%u\n%t


logging.channels.c1.class = ConsoleChannel
logging.channels.c1.formatter = f1

logging.channels.c2.class = FileChannel
logging.channels.c2.formatter = f1
logging.channels.c2.path = ./sample.log
logging.channels.c2.rotation = daily





logging.channels.splitter.class = SplitterChannel
logging.channels.splitter.channels = c1,c2


logging.loggers.root.channel = splitter
logging.loggers.root.level = debug


可以看到配置文件分为5个部分:

1) 前两行 定义了一个formatter,就是定义了日志的输出格式:

[%p %Y-%m-%d %H:%M:%S %i %P %I]\n%U:%u\n%t

2)接下来两行定义了一个输出通道,输出的Console控制台,输出格式就是上面定一个的f1

3)  接下来4行定义了另一个输出通道,输出到文件,文件名是sample.log, 输出格式也是f1,。

logging.channels.c2.rotation = daily

rotation=daily意思是每天写一个文件。当然还可以设定文件大小,保存天数等。

具体可看最后的参考文章。

4) 接下来两行,把2) 3)定义的两个输出通道组合起来,成为一个splitter的通道。

5)最后两行,将splitter通道设定为日志root的通道,这样输出的日志会通过splitter分别送到console 和  file。

   最后定义日志输出级别为debug。


   
   更多可以参考:

POCO C++库学习和分析 -- 日志 (一)

POCO C++库学习和分析 -- 日志 (二)



POCO日志库使用示例,布布扣,bubuko.com

POCO日志库使用示例

标签:poco   log   

原文地址:http://blog.csdn.net/jmppok/article/details/25598483

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!