#include "stdafx.h" #include "WriteFileLog.h" #include WriteFileLog::WriteFileLog() { } WriteFileLog::~WriteFileLog() { } bool WriteFileLog::WriteLogFile(TCHAR * const logfilepath, TCHAR * const txtfilepath) { CWriteLogMng LogMgr; if(!LogMgr.Open(logfilepath)) { return false; } HANDLE txtfile = ::CreateFile(txtfilepath, GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0); if(txtfile == NULL) { LogMgr.Close(); return false; } BaseLogData* pObj = NULL; std::map log_info; LOG_TYPE log_type; log_type.log_count_ = 0; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "Á¢¼Ó·Î±×"); log_info[LOG_SESSION] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "¾ÆÀÌÅ۷α×"); log_info[LOG_ITEM] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "°æÇèÄ¡"); log_info[LOG_EXP] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "¾×¼Ç"); log_info[LOG_ACTION] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "½ºÅ³"); log_info[LOG_SKILL] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "½º³À¼¦"); log_info[LOG_SNAPSHOT] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "½º³À¼¦ (ij¸¯ÅÍ)"); log_info[SNAPSHOT_REGULAR] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "½º³À¼¦ (Àκ¥)"); log_info[SNAPSHOT_LOGININVEN] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "½º³À¼¦ (â°í)"); log_info[SNAPSHOT_WAREHOUSE_OEPN] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "äÆÃ ·Î±×"); log_info[LOG_CHAT] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "À̺¥Æ®"); log_info[LOG_EVENT] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "GM(¿î¿µÀÚ) ·Î±×"); log_info[LOG_ADMIN] = log_type; StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "µ··Î±×"); log_info[LOG_MONEY] = log_type; #ifdef _GUILD_LOG StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "±æµå·Î±×"); log_info[LOG_GUILD] = log_type; #endif StringCchCopy(log_type.log_decription, sizeof(log_type.log_decription), "Àû¸³Æ÷ÀÎÆ®·Î±×"); log_info[LOG_ACCUMULATEPOINT] = log_type; while(true) { pObj = LogMgr.Read(); if(pObj == NULL) break; if( pObj->GetCategory() == LOG_SNAPSHOT) { switch(pObj->GetLogType()) { case SNAPSHOT_REGULAR: { log_info[SNAPSHOT_REGULAR].log_count_++; } break; case SNAPSHOT_LOGININVEN: case SNAPSHOT_LOGOUTINVEN: //Àκ¥Å丮¸¸ ÀúÀå case SNAPSHOT_WAREHOUSE_OPEN_INVEN: // â°í¸¦ ¿­¶§ Àκ¥ÀÇ ¾ÆÀÌÅÛ Á¤º¸ case SNAPSHOT_WAREHOUSE_CLOSE_INVEN: // â°í¸¦ ´ÝÀ»¶§ Àκ¥ÀÇ ¾ÆÀÌÅÛ Á¤º¸ { log_info[SNAPSHOT_LOGININVEN].log_count_++; } break; case SNAPSHOT_WAREHOUSE_OEPN: case SNAPSHOT_WAREHOUSE_CLOSE: //â°í¸¸ ÀúÀå { log_info[SNAPSHOT_WAREHOUSE_OEPN].log_count_++; } } } log_info[pObj->GetCategory()].log_count_++; } char display[MAX_PATH]; DWORD writed = 0; std::map::iterator iter = log_info.begin(); for(; iter != log_info.end() ; iter++) { ZeroMemory(display,MAX_PATH); StringCchPrintf(display, sizeof(display), _T("%s: %d\r\n"), iter->second.log_decription, iter->second.log_count_); ::WriteFile(txtfile,display,strlen(display),&writed,NULL); } ::CloseHandle(txtfile); txtfile = NULL; return true; } //DWORD log_session = 0;//Á¢¼Ó·Î±× //DWORD log_item = 0;//¾ÆÀÌÅÛ·Î±× //DWORD log_exp = 0;//°æÇèÄ¡ //DWORD log_action = 0;//¾×¼Ç //DWORD log_skill = 0;//½ºÅ³ //DWORD log_snapshot = 0;//½º³À¼¦ //DWORD log_chat = 0;//äÆÃ ·Î±× //DWORD log_event = 0;//À̺¥Æ® //DWORD log_admin = 0;//GM(¿î¿µÀÚ) ·Î±× //DWORD log_money = 0;//µ··Î±× //DWORD log_guild = 0;//±æµå·Î±× //DWORD log_accumulatepoint = 0;//Àû¸³Æ÷ÀÎÆ®·Î±× //switch(pObj->GetCategory()) //{ //case LOG_SESSION: // log_session++; // break; //case LOG_ITEM: // log_item++; // break; //case LOG_EXP: // log_exp++; // break; //case LOG_ACTION: // log_action++; // break; //case LOG_SKILL: // log_skill++; // break; //case LOG_SNAPSHOT: // log_snapshot++; // break; //case LOG_CHAT: // log_chat++; // break; //case LOG_EVENT: // log_event++; // break; //case LOG_ADMIN: // log_admin++; // break; //case LOG_MONEY: // log_money++; // break; //case LOG_GUILD: // log_guild++; // break; //case LOG_ACCUMULATEPOINT: // log_accumulatepoint++; // break; //}