1、ACE提供的ACE Logging Service即ACE netsvcs,是可配置的两层服务:
(1) 客户代理:接收本地系统上客户发出的日志请求,将它们转发给服务器:有利于防止大量客户连接冲击服务器
(2)服务器:运行于一台计算机上
2、为使用日志服务,需要创建服务器端配置文件server.conf,内容如下:
dynamic Logger Service_Object* ACE:_make_ACE_Logging_Strategy() "-s foobar -f STDERR|OSTREAM|VERBOSE"
dynamic Server_Logging_Service Service_Object* netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"
以及客户端配置文件client.conf,内容如下:
dynamic Client_Logging_Service Service_Object* netsvcs:_make_ACE_Client_Logging_Acceptor() active "-p 20009 -h localhost"
两个重点:
(1)服务器端在端口20009监听,客户端配置必须一致
(2)假设服务器端和客户端在同一台计算机上,客户端配置连接服务器为localhost
(3)从服务器端来看,日志信息将写往标准设备和文件流,文件名称是foobar,从运行情况来看,新的日志信息将直接被追加到文件末尾
3、测试程序:
// Netsvcs_Practice.cpp : 定义控制台应用程序的入口点。
//
#include "ace/Log_Msg.h"
int ACE_TMAIN(int argc, ACE_TCHAR* argv[])
{
ACE_LOG_MSG->open(argv[0],ACE_Log_Msg::LOGGER,ACE_DEFAULT_LOGGER_KEY);
ACE_TRACE(ACE_TEXT("main"));
ACE_DEBUG((LM_INFO,ACE_TEXT("I日志客户和服务器看守测试")));
ACE_DEBUG((LM_DEBUG,ACE_TEXT("%IHi Mom/n")));
ACE_DEBUG((LM_INFO,ACE_TEXT("IGoodnight/n")));
return 0;
}
4、启动日志服务器和日志客户端
5、运行测试程序
4、5步的截图如下: