`
阿尔萨斯
  • 浏览: 4201317 次
社区版块
存档分类
最新评论

booster log 库介绍

 
阅读更多

用什么在C++程序里面写日志?一直在等待boost发布真正的日志库,就是不见踪影。以前用的log4cxx也太老了。在使用CppCMS的时候,发现了Artyom开发的booster::log,用法简单,值得推荐。

编译CppCMS的方法请看我以前的博客。

然后在你的C++代码中这样写:

#include <booster/log.h>
#include <booster/shared_ptr.h>


/*
 * 
 */
int main(int argc, char** argv) {
    booster::shared_ptr<booster::log::sinks::file> f(new booster::log::sinks::file());
    f->append();
    f->max_files(10);
    f->open("/opt/test.log");
    booster::log::logger::instance().add_sink(f);
    booster::log::logger::instance().set_default_level(booster::log::notice);
    
    return 0;
}


运行看一下,/opt/test.log日志产生了。

max_files是什么意思?指的是最多生成10个日志文件,每次调用f->open的时候,就会产生一个新的test.log文件,而把旧的文件重命名,比如叫做test.log.1

注意max_files调用需要在open之前,否则无效,因为实现代码如下:cppcms1.0.2/booster/log/src/log.cpp

		void file::max_files(unsigned m)
		{
			if(!opened_) max_files_=m;
		}

目前旋转日志不支持按照文件大小自动切分,不过看了里面的代码,有max_size和current_size变量,Artyom日后应该会增加这个功能。


所有的日志处理类都继承自booster::sink类,你可以实现自己的处理类,然后调用add_sink就可以接手日志消息。


参考文档见:http://cppcms.com/cppcms_ref/latest/namespacebooster_1_1log.html#details


看看如何写日志吧。

	BOOSTER_ERROR("main") << "The configuration file path specified by paramerter doens't exit,file path:" << xml_path;
宏BOOSTER_ERROR可以输出日志。_ERROR代表日志级别,低于默认级别的不会出现在日志文件中。

enum  	level_type { 
  emergency = 0, alert = 10, critical = 20, error = 30, 
  warning = 40, notice = 50, info = 60, debug = 70, 
  all = 100 
}
在前面的日志级别高,越往后越低。

宏的定义都在log.h文件中:

	#define BOOSTER_LOG(level,module) 								\
		::booster::log::logger::instance().should_be_logged(::booster::log::level,module)	\
		&& ::booster::log::message(::booster::log::level,module,__FILE__,__LINE__).out()			

	
	/// Same as BOOSTER_LOG(emergency,m)
	#define BOOSTER_EMERG(m)	BOOSTER_LOG(emergency,m)
	/// Same as BOOSTER_LOG(alert,m)
	#define BOOSTER_ALERT(m)	BOOSTER_LOG(alert,m)
	/// Same as BOOSTER_LOG(critical,m)
	#define BOOSTER_CRITICAL(m)	BOOSTER_LOG(critical,m)
	/// Same as BOOSTER_LOG(error,m)
	#define BOOSTER_ERROR(m)	BOOSTER_LOG(error,m)
	/// Same as BOOSTER_LOG(warning,m)
	#define BOOSTER_WARNING(m)	BOOSTER_LOG(warning,m)
	/// Same as BOOSTER_LOG(notice,m)
	#define BOOSTER_NOTICE(m)	BOOSTER_LOG(notice,m)
	/// Same as BOOSTER_LOG(info,m)
	#define BOOSTER_INFO(m)	BOOSTER_LOG(info,m)
	/// Same as BOOSTER_LOG(debug,m)
	#define BOOSTER_DEBUG(m)	BOOSTER_LOG(debug,m)

关于时区,最早默认为GMT+0,后来我在mailing list中提了意见,现在是更友好的本地时区为默认值,不过可以通过函数set_timezone设置你想要的时区。





分享到:
评论

相关推荐

    nosqlbooster4.5.4 和注册机

    nosqlbooster4mongo-4.5.4 NoSQL Manager for MongoDB Pro

    NoSQLBooster for MongoDB

    NoSQLBooster 管理MongoDB的工具。这个工具还有个曾用名--mongobooster

    IObit Driver Booster 注册码

    IObit Driver Booster 注册码

    MongoDB的客户端管理工具--nosqlbooster.zip

    今天给大家推荐一款MongoDB的客户端工具--nosqlbooster,这个也是我工作中一直使用的连接管理MongoDB的工具。这个工具还有个曾用名--mongobooster。nosqlbooster立志做“The Smartest IDE for MongoDB”。它支持 ...

    NoSQLBooster for MongoDB v4.7.5-破解版.rar

    破解步骤: 1、hosts添加127.0.0.1 nosqlbooster.com、127.0.0.1 www.nosqlbooster.com 2、覆盖resources文件 3、输入License

    nosqlbooster4mongo-6.1.3.exe

    nosqlbooster4mongo-6.1.3.exe

    Visual Studio Booster 2.00

    Visual Studio Booster 2.00 Datecode 20031004

    nosqlbooster各版本注册码.txt

    nosqlbooster 各个版本的注册码,支持的版本3.x,4.x,5.x。 注册之前必须断网,否则注册失败。

    Focus Booster1.3.1

    Focus Booster1.3.1

    GTAO_Booster_PoC.zip

    GTAO_Booster_PoC

    registry booster

    registry booster 2012免费注册码sn

    NoSqlBooster5.1.4 新版

    大家在找的新版本名称为NoSqlBooster原名MongoBooster,官方推荐的MongoDB数据库的工具软件,支持最新版本 MongoDB 4.0.6

    nosqlbooster 试用清理

    1.原本程序请从https://nosqlbooster.com/downloads下载; 2.此工具仅针对原始下载程序直接解压试用,非安装在默认路径下的,如安装在默认路径下,则会清理安装信息,请注意; 3.对于4.X及以下版本,可每30天清理...

    BOOSTER

    BOOSTER

    nosqlbooster4mongo-5.1.7

    mongodb 的远程工具, 给网速不好的提供下载 官网:https://nosqlbooster.com/downloads 三个平台都有

    seo-booster-lite插件

    seo-booster-lite插件可以分析通过搜索产生的访问量,通过插件的内置函数在Widget中显示当前最流行的查询,而且,这个列表是根据你的博客动态产生的,然后把这个这些页面的链接显示在你的Widget中,通过这些内容,你...

    Android-booster.zip

    Android-booster.zip,移动应用程序优化器,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    Letasoft.Sound.Booster.1.11.0.514.zip

    看网页、看视频、听音乐时的声音调到了100%还不够大?试试 sound booster 1.11(不是老版本)版本吧。

    IObit Driver Booster 4.x Keygen

    Driver Booster(驱动加速器)是IObit公司推出的一款针对Windows操作系统的电脑的驱动程序更新工具。更新驱动可以提升电脑硬件性能,减少系统崩溃降低硬件冲突。该驱动加速器软件可以通过智能的检测引擎有效识别电脑...

Global site tag (gtag.js) - Google Analytics