`
happmaoo
  • 浏览: 4471949 次
  • 性别: 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...

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

    Boost库是C++编程语言的一个开源库集合,它提供了许多高效、跨平台的工具和库,以增强C++的功能和可扩展性。1.68版本是Boost的一个稳定版本,包含了许多更新和优化,旨在提高性能和兼容性。在Linux环境下,Boost库...

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

    而Boost.Date_Time库则提供了丰富的日期和时间处理功能,满足各种时间计算和格式化需求。 文件系统操作方面,Boost.Filesystem库提供了简单易用的接口,用于处理路径、文件和目录,使得开发者能够方便地进行文件...

    C++ boost库,最新版本

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

    CentOS7环境下编译的boost 1.69静态库和动态库

    本篇将详细讲解如何在CentOS7环境下编译Boost 1.69版本的静态库和动态库,并探讨其在实际应用中的重要性。 首先,让我们了解Boost库。Boost库是由C++社区开发的一系列开源库,旨在提升C++的效率、灵活性和可移植性...

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

    9. **日期和时间处理**:Boost.Date_Time库提供了处理日期和时间的类和函数,可以进行日期计算、时间格式化等操作。 10. **序列化**:Boost.Serialization库允许将对象状态序列化到文件或内存中,便于存储和恢复。 ...

    编译好的完整boost库

    3. **文件系统操作**:Boost.Filesystem库提供了跨平台的文件和目录操作接口。 4. **正则表达式**:Boost.Regex库实现了强大的正则表达式匹配和处理。 5. **日期和时间**:Boost.Date_Time库提供了处理日期和时间的...

    超越C++标准库:Boost库导论

    7. **Boost.PropertyTree**:用于解析和序列化XML、JSON、Info.plist和INI等格式的数据,方便进行配置文件的读写。 8. **Boost.Regex**:提供正则表达式的支持,使得文本匹配和搜索变得简单易用。 9. **Boost....

    boost库封装的日志模块

    这个头文件中通常包含了预定义的日志级别、日志记录函数以及初始化和关闭日志的函数。通过这样的封装,开发者可以不必关心复杂的内部实现,只需调用相应的接口即可完成日志记录。 1. 预定义日志级别:`LogHelper....

    boost库1.68版本windows下编译的dll和lib库

    Boost库是C++编程语言的一个开源库集合,包含了大量的实用工具和库,旨在提升C++的标准库功能。在本案例中,我们关注的是Boost库的1.68版本,该版本已在Windows环境下使用Visual Studio 2017进行编译,并生成了用于...

    [超越C++标准库:Boost库导论].(美)卡尔森.著.张杰良.译.扫描版.pdf

    3. **实践项目**:通过实际编写使用Boost库的项目来加深理解和掌握。 综上所述,《超越C++标准库:Boost库导论》这本书不仅介绍了Boost库的基本概念和发展历程,还深入探讨了各个子库的具体功能和应用场景,对于...

    boost使用手册中文版

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

    VS2013编译的boost 1.60库,含32位和64位的动态库和静态库

    4. **日期时间库**:Boost.DateTime提供了处理日期、时间和时区的功能,包括日期的计算、格式化和解析,为处理时间相关的任务提供了强大支持。 5. **正则表达式库**:Boost.Regex提供了高性能的正则表达式引擎,...

    vs2019+win10配置boost库的详细教程

    在项目的属性中,添加包含目录和库目录。然后,在代码中包含 Boost 库的头文件,并使用 Boost 库的函数。 例如,在多线程并行排序中,可以使用 Boost 库的 sort 库,实现快速排序。 #include #include <boost/...

    Boost程序库完全开发指南-深入C++“准”标准库高清版

    《Boost程序库完全开发指南-深入C++“准”标准库高清版》是罗剑锋撰写的一本关于C++编程的专著,专注于讲解Boost库的使用和开发。Boost库是C++社区的一个重要贡献,它包含了一系列经过严格测试、高度优化的C++模板类...

    Boost程序库完全开发指南——深入C++“准”标准库高清版

    4. **模块化设计**:Boost库采用了模块化的设计方式,用户可以根据需要选择使用特定的部分,而不是整个库。 5. **社区活跃**:Boost拥有一个活跃的开发者社区,可以提供技术支持和讨论。 6. **向后兼容**:随着版本...

    深入实践Boost程序库开发的94个秘笈

    此外,书中还可能涉及其他Boost库,如Boost.Signals2用于信号和槽的事件驱动编程,Boost.Date_Time用于日期和时间操作,Boost.Serialization用于序列化和反序列化,以及Boost.Format提供类似printf的格式化输出功能...

Global site tag (gtag.js) - Google Analytics