ACE_Log_Msg日志
来源:互联网 发布:网络咨询师技巧 编辑:程序博客网 时间:2024/04/27 16:02
日志级别:
LM_DEBUG:调试信息;
LM_TRACE:指示函数调用次序的跟踪消息;
LM_INFO:消息汗有通常只在程序调试时使用的信息;
LM_NOTICE:不是出错的情况,而是可能需要特别处理的情况;
LM_WARNING:警告信息;
LM_ERROR:错误信息;
LM_CRITICAL:紧急情况,比如:硬件设备出错;
LM_ALERT:应该立即纠正的情况,比如系统数据库损坏;
LM_EMERGENCY:万分紧急的情况,通常会广播给所有用户;
部分日志格式化指令:
%l:日志宏所处的行号,与C里面的宏__LINE__对应;
%N:日志宏所在的文件名称,与C里面的宏__FILE__对应;
%D:当前时间戳格式,与C里面的宏__DATE__、__TIME__对应;
%T:当前时间格式,与C里面的宏__TIME__对应;
%t: 调用线程的线程ID;
%M:消息级别的文本形式;如:LM_DEBUG、LM_INFO、LM_ERROR等等;
%c:格式化单个字符,与printf()的%c对应;
%C:格式化char*类型的C字符串;
%s:格式化ACE_TCHAR*类型的ACE字符串;
%w:格式化wchar_t类型的宽字符;
%W:格式化wchar_t*类型的宽字符串;
%i、%d、%R:格式化成十进制格式;
%x、%X:格式化成十六进制格式;
输出日志的宏:
ACE_DEBUG((log_level,format_string,va_list));
ACE_ERROR((log_level,format_string,va_list));
ACE_TRACE((string));在该宏出现的地方打印行号、文件名以及string;
ACE_RETURN(value):不打印消息,直接返回,返回值为value;
ACE_ERROR_RETURN((level,format_string, va_list), value):打印信息,然后返回,返回值为value;
ACE_ERROR_INIT(value, flags);把op_status设置为value,把日志记录器的选项标记设置为falgs;
ACE_ERROR_BREAK((level, format_string, va_list));打印信息,并退出while、for、do...while等循环;
日志宏是否产生日志方法调用,由三个配置选项在编译时的值决定:ACE_NDEBUG、ACE_NTRACE、ACE_NOLOGGING;它们都被编译成“不”,所以:
#define ACE_NDEBUG 0 //调试
#define ACE_NDEBUG 1 //不调试
#define ACE_NTRACE 0 //跟踪
#define ACE_NTRACE 1 //不跟踪
#define ACE_NOLOGGING 0 //记录日志
#define ACE_NOLOGGING 1 //不记录日志
日志级别掩码的范围:
ACE_Log_Msg::PROCESS: 指定PROCESS,获取或设置进程范围内的掩码,会影响所有ACE_Log_Msg实例的日志严重性;
ACE_Log_Msg::THREAD: 每个ACE_Log_Msg实例都可以有自己的严重性掩码,指定THREAD可以获取或设置该掩码;ACE_Log_Msg类实现了日志消息格式化功能;ACE为每个新派生的线程自动维护一个ACE_Log_Msg类的单体实例,其中也包括主线程;要获取ACE_Log_Msg类的单体实例的指针,可以使用快捷方式ACE_LOG_MSG.为了能在正确的ACE_Log_Msg单体实例上发出调用,所有的ACE日志都使用了宏ACE_LOG_MSG;你几乎没有理由直接初始化ACE_Log_Msg;
ACE自动为每个新派生的线程创建一个新的ACE_Log_Msg实例,从而让每个线程都有各自的日志输出;所以,通常把ACE_Log_Msg视为线程专有的对象;
禁用和启用日志级别:
在评估日志消息的严重性级别时,既评估进程范围内的严重性掩码,也评估线程级的每个实例的严重性掩码;这两个范围中的任何一个范围启用了该消息的严重级别,那么这条日志消息就会被记录到日志中;默认情况下,在进程范围内,所有的位都为1,表示启用每一个严重级别;而在实例范围内,所有的位都是0,表示禁用每一个严重级别;因为进程范围内的所有位默认都是1,所以无论该日志消息是何种严重性,它都会被记录到日志中;要让每个线程自己决定把哪些严重级别记录到日志中,可以先把进程范围内的所有位都置0,并允许每个线程设置自己的每个严重性掩码;例如:下面的代码在进程级禁用所有严重级别的日志记录,而在当前线程中只启用LM_DEBUG和LM_NOTICE严重性:
使用ACE_LOG_MSG->priority_mask()方法来启用和禁用日志严重级别;
ACE_LOG_MSH->priority_mask(0, ACE_Log_Msg::PROCESS);
ACE_LOG_MSH->priority_mask(LM_DEBUG | LM_NOTICE, ACE_Log_Msg::THREAD);
- ACE_Log_Msg日志
- study of ACE:ACE_Log_Msg
- ACE学习手记-----ACE_Log_Msg
- ACE_Log_Msg的糟糕设计!
- ACE学习手记-----ACE_Log_Msg
- 演示ACE_Log_Msg类的使用
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 日志
- 网页中通过js修改img的src属性刷新图片时,图片缓存问题现象表述及问题解决
- document.write()和document.writeln()的区别,实现换行
- C语言考试大纲(参考)
- isPostback
- java单例模式
- ACE_Log_Msg日志
- 自定义类加载器加载指定目录下的类
- 用plsqldeveloper创建表为字段加注释时出现乱码解决方法
- WinForm里加载GIF图片
- 简单的老板键功能的实现
- 修改win7开机登陆界面背景图片
- fork函数
- Reyher project: signature pic.
- Linux ALSA声卡驱动之一:ALSA架构简介