#pragma once
|
#include <windows.h>
|
|
#define LOG_FILE_PATH _T("C:\\LogFile\\")
|
|
#define MAX_STRING_SIZE 256 //UNICODE ±âÁØ
|
|
typedef struct _DITLOG {
|
int nLogID;
|
unsigned int nLevel;
|
unsigned int nProcess;
|
SYSTEMTIME nCurTime;
|
TCHAR logMessage[MAX_STRING_SIZE];
|
} DITLOG,*PDITLOG;
|
|
|
#define ONE_LOG_SIZE sizeof(DITLOG) //(level+¹®ÀÚ¿*2) BYTE ±âÁØ
|
#define SHARED_LOG_COUNT 10000
|
#define DIT_MAP_SIZE 1024*64
|
|
|
//À妽º+¸í·ÉÇ÷¡±×+(level+¹®ÀÚ¿)*Å¥°¹¼ö+(¸Ê»çÀÌÁî*64)
|
#define SHAREDMEM_SIZE 4+4+ONE_LOG_SIZE*SHARED_LOG_COUNT+DIT_MAP_SIZE
|
|
class AFX_EXT_CLASS CLogManager
|
{
|
unsigned int m_nProcessID;
|
int m_nLogID;
|
|
HANDLE m_hFMap;
|
//À妽º¿Í Ä¿¸Çµå¸¦ Á¦¿ÜÇÑ °øÀ¯¸Þ¸ð¸® ½ÃÀÛ Æ÷ÀÎÆ®
|
char* m_pSharedMem;
|
|
HANDLE m_csMemoryMap;
|
CRITICAL_SECTION m_csLocalLogFile;
|
|
//¾à 1000ÀÏ(3³â) »ç¿ë°¡´ÉÇÑ À妽º
|
unsigned int* m_nIndex;
|
|
unsigned char* m_Command1; //mapÀúÀå Ç÷¡±×
|
|
TCHAR m_TempLog[512];
|
|
public:
|
unsigned int GetProcessID(){return m_nProcessID;};
|
int GetLogID(){return m_nLogID;};
|
void GetFirstCommand(unsigned char* pCommand);
|
void SetFirstCommand(unsigned char Command);
|
int GetIndex(){ return *m_nIndex;};
|
|
void SetMapData(char* pData)
|
{memcpy(m_pSharedMem+ONE_LOG_SIZE*SHARED_LOG_COUNT,pData,DIT_MAP_SIZE);};
|
|
char* GetMapDataAddress(){ return m_pSharedMem+ONE_LOG_SIZE*SHARED_LOG_COUNT;};
|
|
//°øÀ¯¸Þ¸ð¸®¿¡ ·Î±× ÀÛ¼º, ·Î±×·¹º§°ú ·Î±× ³»¿ë ÀÛ¼º
|
void WriteLog( unsigned int Level, TCHAR* str,...);
|
//·ÎÄà Çϵ忡 ·Î±× ÀÛ¼º
|
void WriteLocalLog(TCHAR* str,...);
|
|
//°øÀ¯¸Þ¸ð¸®ÀÇ ·Î±×¸¦ Àоî¿Â´Ù.
|
void ReadLog(TCHAR* str, unsigned int curIndex, int* curLogID,
|
unsigned int* curLevel,unsigned int* curProcess, PSYSTEMTIME curTime);
|
|
CLogManager(int LogID, TCHAR* NameOfMemoryMap, unsigned int ProcessID = 0);//ProcessID ¿¹¾à¿µ¿ª
|
~CLogManager(void);
|
void SaveBinary(TCHAR* FilePath);
|
};
|