C++开源日志库log4cxx
前言
- 一个很好的打印日志的库,使用工具,让开发更有效率。
参考
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文件不会自动复制到文件夹
- 做一个东西自动复制呗