电脑教程中文网
首页  动态网站建设学习 程序  笑话  论坛 娱乐  交友 ADSL  峄城  成功者
中文名:电脑教程中文网,收集了大量的电脑教程! 编程技术文档 游戏开发 笑话站暂时关闭 设为首页
网页设计 HTML | Dreamweaver | CSS | Firework | FrontPage WEB开发 ASP | JSP | PHP | .NET | CGI | JS | VBS | XML | IIS6 | Apache | PWS
程序设计 Java | C++ |VC++ | C# | Delphi | VB | C语言 | 汇编 | Pascal | Perl 数据库 MSSQL | MySQL | Access | VF | Oracle | DB2 | SYBASE |
办公软件 Word | Excel | WPS | PowerPoint 动画平面 Photoshop | ACDSee | 3Dmax | Flash | Coreldraw |
操作系统 Windows 2000 | Windows XP | Windows 2003 | SCO Unix | Windows Vista | unix、Linux | 综合| 服务器 | 系统安全| 黑客技术
其  他 UltraDev | DOS | UML | PWS | Powerbuilder | 开发心得 | 设计理念 | 病毒库 | 其他 | LightTPD (分类排序给您带来不便请谅解)
推  荐: Java文档500篇》《ASP.NET与相关数据库技术高级指南》《TC图形函数详解》《C函数速查手册》《C语言编程宝典之一》《MFC深入浅出》《黑客零起点》《VC++ 编程指南》《JScript 用户指南》 《CSS教程宝典》《Microsoft Jet SQL 参考》《delphi技巧集合》《MySQL 4.1.0 中文参考手册》《MySQL中文手册
【导航】 您现在的位置 : 首页 - VC教程 - 《VC++精华技术文档收集(2)》- CLog一个用于记录日志的类

CLog一个用于记录日志的类

日期:2005-8-16 10:28:00    作者:佚名   人气:   来源:网络




下载本文所附源代码



#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); 
/*-------------------退出临界区----------------------------------------*/ 
}


 

 




网站首页 - 友情链接 - 公司简介 - 联系方式 - 广告投放 - 客户服务 - 错误报告 - 免责声明 - About us
CLDE.NET电脑教程中文网版权所有 未经许可禁止镜象和复制本站资料 MSN:CLDE_NET@hotmail.com
技术支持:CLDE.NET信息中心 鲁ICP备05039940号 友情链接QQ:784079(隐)