`
happmaoo
  • 浏览: 4324674 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用logcxx库和boost库构建系统日志的格式化输出

阅读更多

作者:朱金灿
来源: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日志库的使用

    在boost中有自带的日志库供开发人员使用但效率不是最高的: 加入头文件#include 即可引入日志库 boost中的log库有以下六种级别: BOOST_LOG_TRIVIAL(trace) << A trace severity message; BOOST_LOG_TRIVIAL...

    C++ boost库,最新版本

    大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作...

    boost库boost库boost库boost库

    boot库

    c++ boost库1.73.0 boost最新版

    大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。 大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式...

    boost库1.68版本Linux下编译的动态库和静态库

    Linux系统下使用gcc 5.3编译器编译的boost库1.68版本的动态库和静态库,多线程参数编译,经测试可用

    boost使用手册中文版

    我们的目标是建立"既有的实践"和提供参考实现,使得Boost库可以适合最后的标准化。已经有十个Boost库被纳入C++标准委员会的程序库技术报告(TR1),并将被纳入即将到来的C++标准修订。多个Boost库被提议为即将到来的...

    超越c++标准库——boost程序库导论

    超越c++标准库——boost程序库导论 对于学习boost库或TR1库是最有用的文档...

    boost库中的格式化输出format的使用

    格式化输出format零、前言一、boost.format组件1、boost.format组件介绍2、boost.format格式化语法3、代码示例二、boost.format组件的高级用法1、format的高级用法2、代码示例 零、前言 格式化输出是每一个程序员...

    怎样使用Boost库

    怎样使用Boost库

    Boost库帮助文档(docsets格式)-20190320

    Boost 库帮助文档,docsets 格式,可使用 zeal 软件查看

    Nginx模块开发指南.使用C++11和Boost程序库.罗剑锋

    扫描完整版 Nginx模块开发指南.使用C++11和Boost程序库 Nginx模块开发指南.使用C++11和Boost程序库

    boost库中文

     大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。  很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法...

    C++boost库 boost.zip

    核心问题,也是比较常见的问题,原因是系统中没有安装boot库,解决方法如下: 下载 boost (http://www.boost.org/users/history/version_1_66_0.html) cd boost_1_66_0/ ./bootstrap.sh --prefix=/usr/local/ ./...

    Boost库定制安装更新版

    大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。里面有许多具有工业强度的库,如graph库。  Boost中比较有名气的有这么几个库:  Regex  正则表达式库  ...

    Boost程序库完全开发指南:深入C++“准”标准库+

    Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发指南:深入C++“准”标准库+Boost程序库完全开发...

    boost boost库

    boost boost库 boost boost库boost boost库 boost boost库boost boost库boost boost库

    超越c++标准库 - boost程序库导论

    超越c++标准库 - boost程序库导论

    boost.python 编写扩展python库

    环境 vs2008 构建 python26 boost_1_44 使用boost.python 编写扩展python库,使用mfc例子调用扩展的python库。 ...文件夹中的dll和lib等文件是 boost.python库的动态库和lib的release和debug版。

Global site tag (gtag.js) - Google Analytics