作者:朱金灿
来源:http://blog.csdn.net/clever101/
logcxx库作为一个强大的C++日志系统,在业内得到越来越多的应用。但是logcxx库欠缺一个格式化日志输出的能力,却不能不说这是它的一个比较大的缺陷。当然你可以说借助字符串类的格式化功能,然后把它塞到logcxx库的接口函数里,比如标准C库的snprintf函数,STL的std::ostringstream和MFC的CString的Format接口。snprintf的缺点在于你得先定义一个大缓冲区(不大的话担心装不下日志信息),而且它不是类型安全的;std::ostringstream使用安全,但是还是先得定义ostringstream对象来构造格式化字符串;CString一则是MFC程序专用,二则它不是类型安全的,三则如果把它塞到logcxx库接口里,隐含了一个CString到char*的转换操作。下面我要介绍的方法比上面的方法都要简单和安全,那就是使用boost库的boost::format和boost::lexical_cast。
logcxx库的使用方法这里我不作赘述,大致是设置一个配置文件,定义输出方式、等级等,大家可以参考这篇文章:log4cxx 用法详解。金庆大侠提出boost::format和logcxx库配合使用(详见参考文献2),我试了一下很好用。不过我发现logcxx和boost::lexical_cast结合同样好用。下面是测试代码:
编译环境:Win XP + sp3,VS C++ 2005 + sp1
参考文献:
1. log4cxx 用法详解
2. log4cxx配合boost::format
,作者金庆。
分享到:
相关推荐
在boost中有自带的日志库供开发人员使用但效率不是最高的: 加入头文件#include 即可引入日志库 boost中的log库有以下六种级别: BOOST_LOG_TRIVIAL(trace) << A trace severity message; BOOST_LOG_TRIVIAL...
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作...
boot库
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。 大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式...
Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用
我们的目标是建立"既有的实践"和提供参考实现,使得Boost库可以适合最后的标准化。已经有十个Boost库被纳入C++标准委员会的程序库技术报告(TR1),并将被纳入即将到来的C++标准修订。多个Boost库被提议为即将到来的...
超越c++标准库——boost程序库导论 对于学习boost库或TR1库是最有用的文档...
格式化输出format零、前言一、boost.format组件1、boost.format组件介绍2、boost.format格式化语法3、代码示例二、boost.format组件的高级用法1、format的高级用法2、代码示例 零、前言 格式化输出是每一个程序员...
怎样使用Boost库
Boost 库帮助文档,docsets 格式,可使用 zeal 软件查看
扫描完整版 Nginx模块开发指南.使用C++11和Boost程序库 Nginx模块开发指南.使用C++11和Boost程序库
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。 很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法...
核心问题,也是比较常见的问题,原因是系统中没有安装boot库,解决方法如下: 下载 boost (http://www.boost.org/users/history/version_1_66_0.html) cd boost_1_66_0/ ./bootstrap.sh --prefix=/usr/local/ ./...
大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。 Boost中比较有名气的有这么几个库: Regex 正则表达式库 ...
Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发...
boost boost库 boost boost库boost boost库 boost boost库boost boost库boost boost库
超越c++标准库 - boost程序库导论
环境 vs2008 构建 python26 boost_1_44 使用boost.python 编写扩展python库,使用mfc例子调用扩展的python库。 ...文件夹中的dll和lib等文件是 boost.python库的动态库和lib的release和debug版。