www.pudn.com > gps-time.rar > LogFile.cpp


// LogFile.cpp: implementation of the CLogFile class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "regioncomm.h" 
#include "LogFile.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
TCHAR * CLogFile::szLogFile = _T("RegionCom.LOG"); 
 
CLogFile::CLogFile() 
{ 
	m_hFile = INVALID_HANDLE_VALUE; 
} 
 
CLogFile::~CLogFile() 
{ 
 
} 
 
BOOL CLogFile::CreateLogFile() 
{ 
	TCHAR szPath[MAX_PATH]; 
	GetCurrentDirectory(MAX_PATH, szPath); 
	if (szPath[strlen(szPath)-1] != '\\') 
		_tcscat(szPath, "\\"); 
	_tcscat(szPath, szLogFile); 
 
	m_hFile = CreateFile(szPath, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, (HANDLE)NULL); 
	if (m_hFile == INVALID_HANDLE_VALUE) { 
		m_hFile = CreateFile(szPath, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_ARCHIVE, (HANDLE)NULL); 
		if (m_hFile == INVALID_HANDLE_VALUE) { 
			MessageBox(NULL, _T("无法打开或创建日志记录文件!"), _T("错误"), MB_OK | MB_ICONSTOP); 
			return FALSE; 
		} 
	} else  
		SetFilePointer(m_hFile, 0, NULL, FILE_END); 
	return TRUE; 
} 
 
void CLogFile::AddLogData(CString pStr) 
{ 
	DWORD dwWritten; 
 
	if (m_hFile == INVALID_HANDLE_VALUE) return; 
 
	CTime t = CTime::GetCurrentTime(); 
	CString str = t.Format("%Y.%m.%d %H:%M:%S  ")+pStr+CString("\r\n"); 
 
	if (!WriteFile(m_hFile, (LPVOID)((LPCTSTR)str), str.GetLength(), &dwWritten, NULL)) 
	{	 
		CloseHandle(m_hFile); 
		m_hFile = INVALID_HANDLE_VALUE; 
	} 
	else 
		FlushFileBuffers(m_hFile); 
} 
 
 
void CLogFile::CloseLogFile() 
{ 
   if (m_hFile != INVALID_HANDLE_VALUE)  
	   CloseHandle(m_hFile); 
}