logobject.cpp

来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 72 行

CPP
72
字号
// LogObject.cpp: implementation of the CLogObject class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "LogObject.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//CThreadLogFiles
CThreadLogFiles CLogObject::s_logFiles ;

CLogObject::CLogObject(CString strObjName)
{
	m_strObjName = strObjName ;
	
	DWORD dThreadID = GetCurrentThreadId();
	s_logFiles.BeginAObject(dThreadID);
	m_hFileHandle	= s_logFiles.GetLogFileHandle(dThreadID);
	m_strPreStr		= s_logFiles.GetPreString(dThreadID) ;
	
	CString strMess ;
	strMess.Format("%s〖开始〗%s %s\r\n",m_strPreStr,m_strObjName,GetTimeStr());
	DWORD dWritten ;
	//输出日志记录的开始信息
	::WriteFile(m_hFileHandle,strMess,strMess.GetLength(),&dWritten,NULL);
}

CLogObject::~CLogObject()
{
	CString strMess ;
	strMess.Format("%s〖结束〗%s %s\r\n",m_strPreStr,m_strObjName,GetTimeStr());
	DWORD dWritten ;
	//输出日志记录的结束信息
	::WriteFile(m_hFileHandle,strMess,strMess.GetLength(),&dWritten,NULL);
	
	DWORD dThreadID = GetCurrentThreadId();
	s_logFiles.EndAObject(dThreadID) ;
}

void CLogObject::WriteMess(CString strMess)
{
	CString strTmp ;
	strTmp.Format("%s〖输出〗%s %s\r\n",m_strPreStr,strMess,GetTimeStr());
	DWORD dWritten ;
	//输出一条信息
	::WriteFile(m_hFileHandle,strTmp,strTmp.GetLength(),&dWritten,NULL);
}
bool CLogObject::InitLog()
{
	if(!s_logFiles.InitLog())
		return false ;
	return true ;
}
bool CLogObject::ExitLog()
{
	if(!s_logFiles.ExitLog())
		return false ;
	return true ;
}

CString CLogObject::GetTimeStr()
{//时间串,依次是:年-月-日-小时-分-秒
	CTime t = CTime::GetCurrentTime() ;
	CString strTime = t.Format("%Y-%m-%d-%H-%M-%S");
	return strTime ;	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?