1 // Log.cpp: implementation of the CLog class.
\r
3 //////////////////////////////////////////////////////////////////////
\r
8 //////////////////////////////////////////////////////////////////////
\r
9 // Construction/Destruction
\r
10 //////////////////////////////////////////////////////////////////////
\r
13 CMMPointer< CSettingVariable<std::string> > CLog::appLogName=0;
\r
14 CMMPointer< CSettingVariable<std::string> > CLog::clientLogName=0;
\r
15 CMMPointer< CSettingVariable<std::string> > CLog::serverLogName=0;
\r
31 appLog.open("applog.txt");
\r
32 clientLog.open("clntlog.txt");
\r
33 serverLog.open("srvrlog.txt");
\r
34 //user errors get logged to client
\r
36 //load the strings file
\r
37 if(!LoadStrings())return false;
\r
42 void CLog::Write(int target, const char *msg, ...)
\r
44 va_list args; va_start(args,msg);
\r
46 vsprintf_s(szBuf,1024,msg,args);
\r
50 appLog<<szBuf<<"\n";
\r
55 if(target&LOG_CLIENT)
\r
57 clientLog<<szBuf<<"\n";
\r
62 if(target&LOG_SERVER)
\r
64 serverLog<<szBuf<<"\n";
\r
72 MessageBox(NULL,(LPCTSTR)szBuf,L"Message",MB_OK);
\r
74 #error User-level logging is not implemented for this platform.
\r
80 void CLog::Write(int target, unsigned long msgID, ...)
\r
82 va_list args; va_start(args, msgID);
\r
84 vsprintf_s(szBuf,1024,logStrings[msgID].c_str(),args);
\r
85 Write(target,szBuf);
\r
90 //under Win32, the strings get read in from a string table resource
\r
91 bool CLog::LoadStrings()
\r
93 for(unsigned long i=0;i<MAX_LOG_STRINGS;i++)
\r
96 if(!LoadString(GetModuleHandle(L"engine"),i,(LPTSTR)szBuf,1024))break; //returning 0 means no more strings
\r
97 logStrings[i]=szBuf;
\r
103 *///other platforms load the strings in from strings.txt
\r
104 bool CLog::LoadStrings()
\r
106 std::ifstream in("strings.txt");
\r
107 if(!in.is_open())return false;
\r
109 unsigned long index=0;
\r
114 in.getline(szBuf,1024);
\r
115 logStrings[index++]=szBuf;
\r