log4cplus支持用户自定义日志等级,操作也比较简单,使用之前贴如下宏定义
#define LOG4CPLUS_MACRO_CREASH_LOG_LEVEL(pred)
LOG4CPLUS_UNLIKELY(pred)

namespace log4cplus
{
 const LogLevel CREASH_LOG_LEVEL = 55000;
}

#define LOG4CPLUS_CREASH(logger, logEvent)
LOG4CPLUS_MACRO_BODY(logger, logEvent, CREASH_LOG_LEVEL)

不过log4cplus没有提供给用户一个接口来实现LEVEL值与字符串的转换,所以当带格式
输出LogLevel字符串时候会显示"UNKNOWN",
不够理想。比如用TTCCLayout控制输出的结果可能会如下所示:
10-17-04 11:17:51,124 [1075298944] UNKNOWN root
<> - info
而不是期望的以下结果:
10-17-04 11:17:51,124 [1075298944] HELLO root
<> - info

要想实现第二种结果,按照log4cplus现有的接口机制,只能改其源代码后重新编译,方法是在loglevel.cxx中加入:

#define _HELLO_STRING LOG4CPLUS_TEXT("HELLO")
然后修改log4cplus::tstring 
defaultLogLevelToStringMethod(LogLevel ll)函数,增加一个判断:
case
HELLO_LOG_LEVEL:

return _HELLO_STRING;

重新编译log4cplus源代码后生成库文件,再使用时即可实现满意效果。如图


 自定义日志等级

参考文章
log4cplus库(四)(优先级与日志配置)

最新文章

  1. jquery复选框 选中事件 及其判断是否被选中
  2. React Native系列文章
  3. 使用uboot的tftp下载bootloader、内核、文件系统
  4. Find celebrity
  5. java中的IO整理
  6. Android 核心分析之十三Android GWES之Android窗口管理
  7. oracle的nvl和sql server的isnull
  8. Cocos2d-X中字符串的处理
  9. (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
  10. Android--------解决ScrollView中嵌套ExpandableListView显示不全的问题
  11. POJ 动态规划题目列表
  12. 六行代码获取本地IP
  13. 1.1.0-学习Opencv与MFC混合编程之---全屏截图,保存为BMP图像(并增加快捷键)
  14. leetcode文章137称号-Single Number II
  15. iptables 汇总
  16. 【译】10分钟学会Pandas
  17. Django学习(2)数据宝库
  18. MySQL的随机数函数rand()的使用技巧
  19. 安装mysql.zip文件教程(包含常见问题修复)
  20. Nginx的特性与核心类别及配置文件和模块详解

热门文章

  1. python将多个pdf合成一个
  2. navigator的一些冷知识
  3. 精读《Function VS Class 组件》
  4. 动态DP之全局平衡二叉树
  5. 光流法-opencv python
  6. [pyMongo]insert_many的Bulkwrite实现机制
  7. C# datatable 重新排序
  8. OpenCV常用头文件介绍
  9. R语言读入数据库的中英名词互译测试并计分脚本(考试用)
  10. Flutter 文本样式继承