180325-log4cplus

C++开源日志库log4cxx

TOC

前言

  • 一个很好的打印日志的库,使用工具,让开发更有效率。

参考

log4cplus使用指南
[log4cplus基本使用方法](https://blog.csdn.net/nyist327/article/details/40511377 )
log4cplus, log4cpp, log4cxx 对比
编译错误,一定要看!
另一个编译错误
一定要加-DUNICODE
CMake手动复制文件到指定目录

学习记录

主要类说明

类名 说明
Filter | 过滤器,过滤输出消息。
Layout | 布局器,控制输出消息的格式。
Appender | 挂接器,与布局器和过滤器紧密配合,将特定格式的消息过滤后输出到所挂接的设备终端如屏幕,文件等等)。
Logger | 记录器,保存并跟踪对象日志信息变更的实体,当你需要对一个对象进行记录时,就需要生成一个logger。
Hierarchy | 分类器,层次化的树型结构,用于对被记录信息的分类,层次中每一个节点维护一个logger的所有信息。
LogLevel | 优先权,包括TRACE, DEBUG, INFO, WARNING, ERROR, FATAL。

六个步骤

使用log4cplus有六个基本步骤:

  • 实例化一个封装了输出介质的appender对象;
  • 实例化一个封装了输出格式的layout对象;
  • 将layout对象绑定(attach)到appender对象;
    • 如省略此步骤,简单布局器SimpleLayout(参见5.1小节)对象会绑定到logger。
  • 实例化一个封装了日志输出logger对象,并调用其静态函数getInstance()获得实例,log4cplus::Logger::getInstance("logger_name");
    将appender对象绑定(attach)到logger对象;
    设置logger的优先级,如省略此步骤,各种有限级的日志都将被输出。

代码

  • 记住,参考tests文件夹中的示例代码
    • appender_test
    • patternlayout_test
    • loglog_test

编译注意事项

  • 不要用C++11
  • 编译选项加上 -DUNICODE,不然会报找不到符号undedined reference
    • 思考,是直接加编译选项呢,还是通过cmake加add_definition呢?

dll文件不会自动复制到文件夹

  • 做一个东西自动复制呗

猜你喜欢

转载自www.cnblogs.com/lizhensheng/p/11117298.html