log4cplus使用(二)-自定义日志等级
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源代码后生成库文件,再使用时即可实现满意效果。如图
自定义日志等级
最新文章
- jquery复选框 选中事件 及其判断是否被选中
- React Native系列文章
- 使用uboot的tftp下载bootloader、内核、文件系统
- Find celebrity
- java中的IO整理
- Android 核心分析之十三Android GWES之Android窗口管理
- oracle的nvl和sql server的isnull
- Cocos2d-X中字符串的处理
- (1) 一个字符串,根据输入参数m,找出字符串的m个字符的所有字符串
- Android--------解决ScrollView中嵌套ExpandableListView显示不全的问题
- POJ 动态规划题目列表
- 六行代码获取本地IP
- 1.1.0-学习Opencv与MFC混合编程之---全屏截图,保存为BMP图像(并增加快捷键)
- leetcode文章137称号-Single Number II
- iptables 汇总
- 【译】10分钟学会Pandas
- Django学习(2)数据宝库
- MySQL的随机数函数rand()的使用技巧
- 安装mysql.zip文件教程(包含常见问题修复)
- Nginx的特性与核心类别及配置文件和模块详解