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

📄 logfile.cpp

📁 网络游戏魔域源代码 测试可以完整变异
💻 CPP
字号:
// 诊断程序
// 仙剑修, 2001.10.10

#include <afxmt.h>
#include "common.h"
#include "basefunc.h"
#include "logfile.h"

#define		BUFSIZE		1024

//CString	g_sLogFile;
#define	MUTEX_LOGFILE
#ifdef	MUTEX_LOGFILE
CCriticalSection	log_xLogCrit;
#endif
char		log_szTitle[BUFSIZE]	= "未命名程序 V1.0";			//? 可能空间不足
char		log_szFilename[BUFSIZE]	= "Logfile";
time_t		log_tStartServerTime	= 0;

////////////////////////////////////////////////////////////////////////////
// 初始化LOG文件
void InitLog(const char * pTitle, const char * pFilename, time_t tStart)
{
	if(pTitle)
	{
		int nLen = strlen(pTitle);
		if(nLen >= BUFSIZE-1)
			nLen = BUFSIZE-1;
		strncpy(log_szTitle, pTitle, nLen+1);
		log_szTitle[BUFSIZE-1]	= 0;
	}

	if(pFilename)
	{
		int nLen = strlen(pFilename);
		if(nLen >= BUFSIZE-1)
			nLen = BUFSIZE-1;
		strncpy(log_szFilename, pFilename, nLen+1);
		log_szFilename[BUFSIZE-1]	= 0;
	}

	log_tStartServerTime = tStart;
}

void LOSEDATA(const char * sFormat, ...)
{
	va_list argptr;
	va_start( argptr, sFormat);     /* Initialize variable arguments. */

	char	buf[4096] = "";					/* ?????空间可能不足 */
	int		ret = vsprintf(buf, sFormat, argptr);
	strcat(buf, "\n");
//	if(!(ret < 4096-2)) log_Save(x, "ASSERT(ret < 4096-2)");	/* ?????空间可能不足 */

	va_end( argptr );              /* Reset variable arguments.      */

	log_Save("LOSE_DATA", buf);
}

void log_Save(const char * pFilename, const char * pBuf)
{
#ifdef	MUTEX_LOGFILE
	CSingleLock(&log_xLogCrit, true);
#endif

	// 写文件
	time_t tCurrTime;
	time( &tCurrTime );
	tm *	pTmFile = localtime(&tCurrTime);
	char	szLogFile[1024] = "";				//? 可能空间不足
	sprintf(szLogFile, "%s %04d-%02d-%02d.LOG", pFilename, pTmFile->tm_year+1900, pTmFile->tm_mon+1, pTmFile->tm_mday);

	FILE	* pFile;
	pFile = fopen(szLogFile, "a");
	if(pFile)
	{
		fseek(pFile, 0, SEEK_END);
		{
			if(ftell(pFile) == 0)
			{
				char buf[2048];			//? 
				char bufStart[20];
				char bufCurr[20];
			
				DateTime(bufStart, log_tStartServerTime);
				DateTime(bufCurr, tCurrTime);
				int	nSec = (int)difftime(tCurrTime, log_tStartServerTime);
				sprintf(buf,	"================================================================================\n"
								"=== %s\n"
								"=== Start server time is %s\n"
								"================================================================================\n"
								"=== Current time is %s\n"
								"=== Server takes %d days  %02d:%02d:%02d\n"
								"================================================================================\n\n\n"
								, log_szTitle
								, bufStart
								, bufCurr
								, nSec / 86400, (nSec/3600)%24, (nSec/60)%60, nSec%60 );
				fputs(buf, pFile);
			}
		}

		// 输出消息
		if(ftell(pFile) < 500*1000*1000)
			fputs(pBuf, pFile);
		fclose(pFile);
	}
}

//////////////////////////////////////////////////////////////////////
CLogFile::CLogFile(LPCTSTR szFile, LPCTSTR szTitle/*=NULL*/, int nMaxSize/*=500*1000*1000*/)
{
}

//////////////////////////////////////////////////////////////////////
void CLogFile::SaveLog(LPCTSTR szHead, LPCTSTR szFormat, ...)
{
}

//////////////////////////////////////////////////////////////////////
void CLogFile::SaveRaw(LPCTSTR szLog)
{
}

⌨️ 快捷键说明

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