• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

CLog一个用于记录日志的类

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 31次 | 进入软件测试论坛讨论

领测软件测试网

#ifndef _LOG_H
#define _LOG_H

class CLog
{
public:
 CLog();
 ~CLog();

public:
 void InitLog(LPCTSTR lpszLogPath);  
 void Add(const char* fmt, ...);  //输出文字,参数就跟printf一样
 
protected:
 enum {BUFSIZE = 3000};  //工作缓冲区
 char  m_tBuf[BUFSIZE];
 
 CString  m_strLogPath;
 CRITICAL_SECTION  m_crit;  //设置一个临界区
};

#endif


#include "stdafx.h"
#include "log.h"

CLog::CLog()  //构造函数,设置日志文件的默认路径
{
 ::InitializeCriticalSection(&m_crit);   //初始化临界区
}


CLog::~CLog()
{
 ::DeleteCriticalSection(&m_crit);    //释放里临界区
}

 
/*================================================================
* 函数名:    InitLog
* 参数:      LPCTST lpszLogPath
* 功能描述:   初始化日志(设置日志文件的路径)
* 返回值:    void
* 作 者:     程红秀 2005年01月06日
================================================================*/
void CLog::InitLog(LPCTSTR lpszLogPath)  
{ 
 m_strLogPath=lpszLogPath;
}

void CLog::Add(const char* fmt, ...)
{
 if (m_strLogPath.IsEmpty())
  return ;
 
 if (!AfxIsValidString(fmt, -1))
  return ;
/*-----------------------进入临界区(写文件)------------------------------------*/ 
 ::EnterCriticalSection(&m_crit);  
 try     
 {
  va_list argptr;          //分析字符串的格式
  va_start(argptr, fmt);
  _vsnprintf(m_tBuf, BUFSIZE, fmt, argptr);
  va_end(argptr);
 }
 catch (...)
 {
  m_tBuf[0] = 0;
 }
 
 FILE *fp = fopen(m_strLogPath, "a"); //以添加的方式输出到文件
 if (fp)
 {
  fprintf(fp,"%s:  ", AfxGetApp()->m_pszExeName);  //加入当前程序名
  
  CTime ct ;                          //加入当前时间
  ct = CTime::GetCurrentTime();
  fprintf(fp,"%s : ",ct.Format("%m/%d/%Y %H:%M:%S"));
  fprintf(fp, "%s\n", m_tBuf);  
  fclose(fp);  
 } 
 ::LeaveCriticalSection(&m_crit); 
/*-------------------退出临界区----------------------------------------*/ 
}


 


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网