題目:
當有新建立的角色時,就寫出一筆 Log.
放在 /log/Login/Create.log.年月日
每天換一個檔名
4. 每筆內容記錄:年月日時分秒, 帳號, 出生地、角色編號
是个小模块!可以代码写给我吗?
我想是个窗口的读操作 然后写入文件只是要各系统时间!我用vc很少那位兄台给各代码!百分赠送!
當有新建立的角色時,就寫出一筆 Log.
放在 /log/Login/Create.log.年月日
每天換一個檔名
4. 每筆內容記錄:年月日時分秒, 帳號, 出生地、角色編號
是个小模块!可以代码写给我吗?
我想是个窗口的读操作 然后写入文件只是要各系统时间!我用vc很少那位兄台给各代码!百分赠送!
放在 /log/Login/Create.log.年月日中就行了 我平时都是用vb或者java现在一定要用vc 那位帮忙写几行代码就行了
SYSTEMTIME st;
GetLocalTime(&st);
FILE* file=fopen("Create.log","a");
char msg[223];
memset(msg,0,223);CString zh="账号";
CString csd="出生地";
CString jsbh="角色编号";
sprintf(msg,"[%d-%d-%d %d:%d:%d] %s,%s,%s",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,zh,csd,jsbh);
strcat(msg,"\n\n");fprintf(file,msg);
fclose(file);
/*写系统日志---------------------------------------------------*/
CTime t=CTime::GetCurrentTime();
szFileName.Format("/log/Login/Create.log.%04d%02d%02d",t.GetYear(),t.GetMonth(),t.GetDay());
HANDLE g_hErrMsg = CreateFile(szFileName,GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
void SaveMsg(TCHAR* szFormat,...) throw()
{
static CCriticalSection lcs_MsgFile;
CSingleLock lock(&lcs_MsgFile,TRUE);
char szInfo[65536];
TCHAR szBuffer[65536];
ZeroMemory(szInfo,65536);
ZeroMemory(szBuffer,65536);
va_list pArgs;
SYSTEMTIME st;
GetLocalTime(&st);
va_start(pArgs, szFormat);
vsprintf(szBuffer, szFormat, pArgs);
va_end(pArgs);
if(szBuffer[strlen(szBuffer)-1]=='\n'){
sprintf(szInfo,"%04d-%02d-%02d %02d:%02d:%02d.%03d\t%s",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,szBuffer);
}else{
sprintf(szInfo,"%04d-%02d-%02d %02d:%02d:%02d.%03d\t%s\r\n",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,szBuffer);
}
if(g_hErrMsg)
{
DWORD dwBytes=0;
DWORD dwFileSize=GetFileSize(g_hErrMsg,&dwBytes);
if(dwFileSize<MAX_LOGFILESIZE) // 避免日志文件过来
WriteFile(g_hErrMsg,(LPCVOID)szInfo,strlen(szInfo),&dwBytes,NULL);
else
OutputDebugString(szInfo);
}
}