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;
}
分享到:
相关推荐
- **输出到文件**:通过创建`ofstream`对象并将其设置为`ACE_LOG_MSG`的输出流,可以将日志输出到指定的文件中。 ```cpp ACE_OSTREAM_TYPE *pOutput = new ofstream("log.txt"); ACE_LOG_MSG->msg_ostream...
ACE日志服务提供了多种日志输出宏,例如ACE_DEBUG、ACE_INFO、ACE_WARNING、ACE_ERROR等,用于输出不同级别的日志信息。这些宏可以根据需要进行定义和使用,例如: ACE_DEBUG((LM_DEBUG, "This is a debug message...
**ACE_OS命名空间函数参考** ACE(Adaptive Communication Environment)是一个强大的、跨平台的C++库,用于构建高性能、高可移植性的网络软件。在ACE库中,`ACE_OS`命名空间是至关重要的一个部分,它封装了许多...
《ACE_SOCK_TCP.rar:ACE库在C++中实现TCP通信详解》 ACE(Adaptive Communication Environment)是一个跨平台的、开源的C++库,它为分布式系统开发提供了丰富的网络编程接口。ACE库的设计目标是简化异构网络环境中...
在“ACE_server.rar”这个压缩包中,包含的是使用ACE库搭建的一个TCP服务器和客户端框架。这个框架设计得简洁且易于扩展,适合开发者快速构建自己的网络服务。 首先,我们来了解一下ACE库的核心特性。ACE是一个开源...
ACE_wrappers 5.7类库 使用CodeBlocks 8.02 gcc 3.4.5编译的Release版本 文件列表 libACE.dll.a,libACE.dll,libACE_ETCL.dll,libACE_ETCL_Parser.dll,libACE_Monitor_Control.dll
标题中的"ACE_MFC.rar_ACE_ACE_MFC"很可能是一个压缩包,包含了ACE MFC版本的库文件和相关的资源。这个压缩包可能是为了方便开发者在使用Visual C++ 2005进行项目开发时,可以直接引入这些库文件,以便利用ACE的网络...
### 分析ACE_Task::putq在队列满且timeout为0的情况 #### 0. 引言 在本文中,我们将深入探讨调用`ACE_Task::putq`函数时的各种行为,尤其是当队列满且`timeout`参数设为0的情况。我们将分析涉及的多个层面,包括...
`TcpHandler.cpp`则包含了TCP连接的处理器类,这个类通常会继承自ACE_Event_Handler,处理来自网络的输入和输出事件。 `TcpUnitTest.cpp`可能是用于测试TCP通信功能的单元测试代码,通过这些测试,我们可以验证TCP...
static __time64_t __cdecl _make__time64_t ( struct tm *tb, int ultflag ) { __time64_t tmptm1, tmptm2, tmptm3; struct tm tbtemp; long dstbias = 0;... long timezone = 0;...= NULL ), EINVAL, ( ( __time64...
标题中的"ace_send.rar_ACE_pop"提示我们讨论的主题与ACE库有关,特别是关于发送(send)和弹出(pop)信息的实现。ACE库,全称Adaptive Communication Environment,是一个跨平台的C++框架,主要用于分布式系统和...
- **handle_output(ACE_HANDLE)**: 处理输出事件,返回值通常表示是否成功处理。 - **handle_exception(ACE_HANDLE)**: 处理异常事件,返回值通常表示是否成功处理。 - **handle_timeout(const ACE_Time_Value&, ...
在这个“ACE_Reactor.rar”压缩包中,包含的可能是关于如何使用ACE Reactor来构建服务器端程序的相关资料。 首先,我们来看看ACE Reactor的基本概念。Reactor模式是一种设计模式,它提供了一种处理异步事件和服务...
标签"ace"、"ace_p"和"ace_source_code"进一步强调了文件的关键元素:ACE库、其Proactor部分以及源码。ACE库的特性包括但不限于: 1. **并发与线程管理**:ACE提供了线程池、互斥锁、条件变量等并发控制机制,便于...
可以使用宏`ACE_DEBUG`和`ACE_ERROR`来记录日志。 ```cpp #include "ace/log_msg.h" #include "ace/log_msg_callback.h" #include "ace/log_record.h" int main(int argc, ACE_TCHAR* argv[]) { ACE_DEBUG...
标题中的"Ace_Net.rar_ACE_ace 网络 _ace c++"明确指出这是一个与ACE网络编程相关的资源包,适用于C++开发者。 **ACE** 的主要特点包括: 1. **并发性**:ACE提供了线程、事件多路复用(如I/O复用、信号驱动I/O、...
"ACE_wrappers"通常指的是ACE库的包装器,它包含了一组用于简化ACE使用和集成到其他项目的源代码和头文件。在您提供的信息中,“ACE_wrappers22222222”可能是对ACE库的一个特定版本或定制版的命名,可能包含了额外...
ACE客户端(ACE_Client_1)是基于ACE框架实现的一个数据通信客户端程序,ACE是一个高度可移植的、跨平台的C++库,专为分布式实时系统设计。ACE提供了一组全面的网络编程接口,用于处理并发性、同步、事件管理、错误...
"ACE_wrappers11111111"可能指的是ACE库的一个特定版本或者一个包含ACE库相关包装器的项目。由于描述和标签信息重复,没有提供具体细节,我将从一般性的ACE库知识点来展开讨论。 ACE库由Douglas C. Schmidt创建,...
### ACE_TAO学习笔记:构建ACE与TAO的详尽指南 #### 1. 编译ACE+TAO概述 **ACE(Adaptive Communication Environment)** 和 **TAO(The ACE ORB)** 是一套开源的中间件软件,用于开发高性能、实时分布式计算应用...