題目:
當有新建立的角色時,就寫出一筆 Log.
放在 /log/Login/Create.log.年月日
每天換一個檔名
4. 每筆內容記錄:年月日時分秒, 帳號, 出生地、角色編號
 是个小模块!可以代码写给我吗?
我想是个窗口的读操作 然后写入文件只是要各系统时间!我用vc很少那位兄台给各代码!百分赠送!

解决方案 »

  1.   

    什么角色不重要就是把用户年月日時分秒, 帳號, 出生地、角色編號从界面读出然后写到一筆 Log.
    放在 /log/Login/Create.log.年月日中就行了 我平时都是用vb或者java现在一定要用vc 那位帮忙写几行代码就行了
      

  2.   

    /*写系统日志---------------------------------------------------*/
    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);
    /*写系统日志---------------------------------------------------*/
      

  3.   

    CString szFileName;
    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);
    }
    }