博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log4cplus使用(二)-自定义日志等级
阅读量:7287 次
发布时间:2019-06-30

本文共 847 字,大约阅读时间需要 2 分钟。

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源代码后生成库文件,再使用时即可实现满意效果。如图

图  自定义日志等级

参考文章

转载于:https://www.cnblogs.com/swarmbees/p/5621616.html

你可能感兴趣的文章
linux下如何执行PHP脚本
查看>>
理解 select poll epoll
查看>>
vue首屏减少加载时间(gzip)
查看>>
注意事项
查看>>
Exception starting filter struts2 Unable to load configuration. - [unknown l
查看>>
20145337 《Java程序设计》第九周学习总结
查看>>
《Python编程从入门到实践》--- 学习过程笔记(2)变量和简单数据类型
查看>>
session开启慢的原因及解决办法
查看>>
调试Javascript
查看>>
简说设计模式——访问者模式
查看>>
Typescript高级类型
查看>>
MATLAB初体验
查看>>
HTML5之Canvas绘图——半圆与圆弧的不同画法
查看>>
nodejs+express+mongodb写api接口的简单尝试
查看>>
GDB调试 出错问题
查看>>
LeetCode每日一题:Bigram 分词(No.1078)
查看>>
多线程笔记 三
查看>>
2017-10-6(Retrofit使用范例的源码分析 )
查看>>
iOS直播技术学习笔记 YUV颜色空间(六)
查看>>
数据库内核月报 - 2017年12月
查看>>