ACE_DEBUG介绍及日志输出
来源:互联网 发布:动态bgp网络 编辑:程序博客网 时间:2024/05/22 14:54
ACE_DEBUG 常规的一些输出消息
ACE_ERROR 会提供程序出错的一些低级消息
2个宏的用法上是一致的
ACE_DEBUG(错误级别,"格式串",变量1...变量N)
其中部分错误级别系统定义如下:
LM_SHUTDOWN = 01,系统死机级别
LM_TRACE = 02,跟踪级别
LM_DEBUG = 04,DEBUG级别
LM_INFO = 010,常规信息级别
LM_NOTICE = 020,注意级别
LM_WARNING = 040,警告级别
LM_STARTUP = 0100,启动级别
LM_ERROR = 0200,错误级别
LM_CRITICAL = 0400,危急级别
LM_ALERT = 01000,可修复的警告级别
LM_EMERGENCY = 02000,全局警告级别
部分格式串使用如下:
跟c 中printf使用类似
%n-表当前程序名称
%t-表当前线程号
%p-表指针
%s-字符串
ACE通过全局单体实例 ACE_LOG_MSG 管理和控制输出,我们可以利用这个实例把输出重定向
到文件,也可以重定向到标志输出
其中还可以控制什么级别的消息可被输出,简单使用如下:
ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
设置输出到标准错误输出
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
关闭输出到标志错误输出
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
ofstream myostream (filename, ios::out | ios::trunc);
ACE_LOG_MSG->msg_ostream (&myostream);
设置输出到文件
u_long priority_mask =ACE_LOG_MSG->priority_mask (ACE_Log_Msg::PROCESS);
ACE_SET_BITS (priority_mask,LM_DEBUG |LM_INFO);
设置只记录LM_DEBUG 或者LM_INFO级别的消息
ACE_CLR_BITS (priority_mask,LM_DEBUG | LM_INFO);
清除设置条件
ACE_LOG_MSG还有一个非常有意思的功能,能以16进制方式输出内存中的块 ,简单使用如下:
ACE_LOG_MSG->log_hexdump (LM_DEBUG,
(char *) array,
sizeof array);
下面附上一个使用例子,例子来源于ACE包中的例子程序
#include "ace/OS_main.h"
#include "ace/streams.h"
#include "ace/Log_Msg.h"
int
ACE_TMAIN (int, ACE_TCHAR *[])
{
// 这个消息将输出到STDERR
ACE_DEBUG ((LM_DEBUG,
"first message\n"));
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
// 这个消息将不被输出,因为标志位清除了
ACE_DEBUG ((LM_DEBUG,
"second message\n"));
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
//这个消息将不被输出,因为流的实体尚未定义
ACE_DEBUG ((LM_DEBUG,
"third message\n"));
//建立一个流实体,指向d:\output.log文件
const char *filename = "d:\\output.log";
ofstream myostream (filename, ios::out | ios::trunc);
if (myostream.bad ())
return 1;
// 设置输出到流
ACE_LOG_MSG->msg_ostream (&myostream);
//这个消息将输出到文件中
ACE_DEBUG ((LM_DEBUG,
"fourth message\n"));
ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
// 这个消息将同时输出到文件和STDERR
ACE_DEBUG ((LM_DEBUG,
"fifth message\n"));
return 0;
}
- ACE_DEBUG介绍及日志输出
- ACE_DEBUG介绍及日志输出
- ACE_DEBUG介绍及日志输出
- ACE_DEBUG介绍及日志输出
- ACE_DEBUG介绍及日志输出
- ACE 示例中的 ACE_DEBUG 不在窗口输出信息的原因
- Android单元测试及日志输出
- 单元测试及日志输出总结
- photon 配置及日志输出
- Log4j日志输出配置及Demo
- PhotonServer游戏服务器部署及日志输出
- 【系统学习SpringBoot】SpringBoot配置logging日志及输出日志
- [官方]《仓鼠岛》介绍及更新日志
- 日志组件slf4j介绍及配置详解
- 日志组件logback介绍及配置使用方法
- 日志组件slf4j介绍及配置详解
- 日志组件slf4j介绍及配置详解
- 日志组件slf4j介绍及配置详解
- 1-5.将Hadoop添加到环境变量,初始化HDFS,启动Hadoop,测试hdfs(Hadoop系列day01)
- oracle导入导出数据库dmp
- 【VS开发】【C++语言】reshuffle的容器实现算法random_shuffle()的使用
- shell排序、统计
- 我的第一篇文章
- ACE_DEBUG介绍及日志输出
- Android Apk size瘦身
- ubuntu下制作hyperledger的docker镜像
- QA报道第一天
- 用javascript画的黑色长方形
- js闭包的理解
- freebsd源码安装pyzmq
- 关于在用异步消息处理机制使用Message.Obtain()方法(而非New Message)获得一个Message对象的好处
- Zabbix 3.0 部署监控 [二]