ace日志服务器类文件,[1]ACE_Log_Msg输出日志文件

#include "stdafx.h"

#include "ACE_Tools.h"

#include "ace/Log_Msg.h"

#include

#include

using namespace std;

bool  CACETools::CreateACELog()

{

SYSTEMTIME st;

CString filePath;

GetLocalTime(&st);

filePath.Format("ACE_LOG_TEST

ddd-dd-dd",st.wYear,st.wMonth,st.wDay,

st.wHour,st.wMinute,st.wSecond,st.wMilliseconds);

filePath +=CString(".log");

//获取当前路径

char path[MAX_PATH];

DWORD dw = GetCurrentDirectory(MAX_PATH,path);

if (dw)

{

CString moduleName(path);

filePath =

moduleName+CString("\\ace_test_log\\")+filePath;

moduleName += "\\ace_test_log\\";

//判断当前路径文件夹是否存在

dw = _access(moduleName,0);

if (dw == -1)

{

//当前文件不存在,创建新的文件

SECURITY_ATTRIBUTES Sa;

Sa.nLength = sizeof(SECURITY_ATTRIBUTES);

Sa.bInheritHandle = FALSE;

Sa.lpSecurityDescriptor = NULL;

if (!CreateDirectory(moduleName,&Sa))

{

ACE_DEBUG((LM_DEBUG,ACE_TEXT("[%D]无法创建log目录\n")));

return 0;

}

}

}

else

{

ACE_DEBUG((LM_DEBUG,ACE_TEXT("[%D]无法获取当前路径\n")));

return 0;

}

//创建ACE输出

u_long lmask = 0 ;

if(0)  lmask |= LM_TRACE ;

if(1)  lmask |= LM_DEBUG ;

if(1)  lmask |= LM_INFO ;

if(1)  lmask |= LM_NOTICE ;

if(1) lmask |= LM_WARNING ;

if(1)  lmask |= LM_ERROR ;

//设置ACE_LOG_MSG实例能够输出的信息内容

ACE_LOG_MSG->priority_mask (lmask,

ACE_Log_Msg::PROCESS);

//清除掉不必要的输出方式

ACE_LOG_MSG->clr_flags (ACE_Log_Msg::LOGGER);

ACE_LOG_MSG->clr_flags (ACE_Log_Msg::MSG_CALLBACK);

ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE);

//带有目标地址

ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE_LITE);

ACE_LOG_MSG->clr_flags (ACE_Log_Msg::SILENT);

//没有清除掉STDERR 和 OSTREAM,表明可以从标准输出流 和 文件流 输出

//ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);

//ACE_LOG_MSG->clr_flags (ACE_Log_Msg::OSTREAM);

wchar_t wpath[MAX_PATH] = {0};

::MultiByteToWideChar(CP_ACP,0,filePath,filePath.GetLength(),wpath,

MAX_PATH);

ofstream* log_file  = new

ofstream(wpath,ios::out|ios::app);

if (log_file && log_file->bad())

{

log_file->close();

delete log_file;

log_file = NULL;

ACE_DEBUG((LM_DEBUG,ACE_TEXT("[%D]创建输出流失败\n")));

return 0;

}

else

{

//修改ACE_LOG_MSG实例的输出方式

ACE_LOG_MSG->set_flags(ACE_Log_Msg::OSTREAM);

//指定ACE_LOG_MSG实例输出文件

ACE_LOG_MSG->msg_ostream(log_file,true);

}

}

void  CACETools::AECLogTest(void)

{

for (int i=0;i<10;i++)

{

//以STDERR 和 OSTREAM 方式输出信息

ACE_DEBUG((LM_INFO,ACE_TEXT("[%D]当前编号为%d\n"),i));

ACE_OS::sleep(1);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值