180325-log4cplus

Posted lizhensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件不会自动复制到文件夹

  • 做一个东西自动复制呗

以上是关于180325-log4cplus的主要内容,如果未能解决你的问题,请参考以下文章

Maya 2013启动显示log4cplus等错误,不知道对Maya的使用有啥影响,怎么解决?

log4cplus使用-自定义日志等级

log4cplus 直接创建logger 对象

使用Log4Cplus+配置文件打印日志

log4cplus库的properties文件配置

log4cplus在项目中的使用