⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.cpp

📁 基于domino系统邮件数据库编写的邮件助手程序
💻 CPP
字号:
// Log.cpp: implementation of the CLog class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DominoMinder.h"
#include "Log.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//初始化日值对象(静态)
CLog CLog::m_oLog = *(new CLog());

CLog::CLog()
{
	initFile();
}

CLog::~CLog()
{
	closeFile();
}

//设置日志文件名
void CLog::initFile()
{
	/*
	char sExePath[100];
	if(::GetModuleFileName(NULL, sExePath, 99)==0) {
		sprintf(m_strLogFilePath, ".\\log.txt\0");
	} else {
		char* sExeName = strrchr(sExePath,'\\')+1;
		char* sExePostFix = strrchr(sExePath,'.');
		sprintf(sExePostFix, "\0");
		sprintf(m_strLogFilePath, ".\\%s.log\0", sExeName);
	}
	*/

	//日志文件路径
	::LoadString(NULL, IDS_APP_NAME, m_strLogFilePath, MAX_PATH);
	sprintf( m_strLogFilePath, "%s.log\0", m_strLogFilePath );

	m_objptrOfstream = new ofstream(m_strLogFilePath, ios::app, filebuf::sh_read || filebuf::sh_write);
	if (m_objptrOfstream->fail() || m_objptrOfstream->bad())
		m_objptrOfstream = NULL;

	//writeLine("Begin...................................................");
}
void CLog::closeFile()
{
	//writeLine("End.....................................................\n");
	//write("\n\n");
	m_objptrOfstream = NULL;
}

//写日志
void CLog::writeTime()
{
	char sTime[30];
	time_t t;
	time(&t);
	tm* tmNow = localtime(&t);
	sprintf(sTime, "%04d-%02d-%02d, %02d:%02d:%02d | \0", 
		tmNow->tm_year+1900, tmNow->tm_mon+1, tmNow->tm_mday,
		tmNow->tm_hour, tmNow->tm_min, tmNow->tm_sec);
	write(sTime);
}
void CLog::write(const char* szMsg)
{
	if (m_objptrOfstream != NULL) {
		*m_objptrOfstream << szMsg << flush;
	}
}
void CLog::writeLine(const char* szMsg)
{
	if (m_objptrOfstream != NULL) {
		writeTime();
		*m_objptrOfstream << szMsg << endl << flush;
	}
}



//静态接口
void CLog::WriteLine(const char* szMsg)
{
	m_oLog.writeLine( szMsg );
}
void CLog::WriteLine( const char* szMsg, int nLine, const char* szFileName )
{
	char szBuffer[1024]; memset(szBuffer,0,sizeof(szBuffer));
	sprintf(szBuffer, "%s, (L%04d) %s\0", szMsg, nLine, szFileName );
	m_oLog.writeLine( szBuffer );
}
void CLog::WriteLine( long dw, const char* szMsg )
{
	char szBuffer[1024]; memset(szBuffer,0,sizeof(szBuffer));
	sprintf(szBuffer, "%d, %s\0", dw, szMsg);
	m_oLog.writeLine( szBuffer );
}

⌨️ 快捷键说明

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