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

    图  自定义日志等级

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

  • 相关阅读:
    分页查询+组合查询
    单点登录3
    单点登录2
    单点登录1
    sql server 语句
    jsTree动态加载数据
    sql 根据日期模糊查询&SQL Server dateTime类型 模糊查询
    快捷键
    JQUERY获取当前页面的URL信息
    C#中的?和??的用法
  • 原文地址:https://www.cnblogs.com/swarmbees/p/5621616.html
Copyright © 2011-2022 走看看