1 // Log.cpp: implementation of the CLog class.
\r
3 //////////////////////////////////////////////////////////////////////
\r
10 //////////////////////////////////////////////////////////////////////
\r
11 // Construction/Destruction
\r
12 //////////////////////////////////////////////////////////////////////
\r
15 CMMPointer< CSettingVariable<std::string> > CLog::appLogName=0;
\r
16 CMMPointer< CSettingVariable<std::string> > CLog::clientLogName=0;
\r
17 CMMPointer< CSettingVariable<std::string> > CLog::serverLogName=0;
\r
33 appLog.open("applog.txt");
\r
34 clientLog.open("clntlog.txt");
\r
35 serverLog.open("srvrlog.txt");
\r
36 //user errors get logged to client
\r
38 //load the strings file
\r
39 if(!LoadStrings())return false;
\r
44 void CLog::Write(int target, const char *msg, ...)
\r
46 va_list args; va_start(args,msg);
\r
48 vsprintf_s(szBuf,1024,msg,args);
\r
52 appLog<<szBuf<<"\n";
\r
57 if(target&LOG_CLIENT)
\r
59 clientLog<<szBuf<<"\n";
\r
64 if(target&LOG_SERVER)
\r
66 serverLog<<szBuf<<"\n";
\r
74 MessageBox(NULL,(LPCTSTR)szBuf,L"Message",MB_OK);
\r
76 std::cout << szBuf << "\n";
\r
82 void CLog::Write(int target, unsigned long msgID, ...)
\r
84 va_list args; va_start(args, msgID);
\r
86 vsprintf_s(szBuf,1024,logStrings[msgID].c_str(),args);
\r
87 Write(target,szBuf);
\r
92 //under Win32, the strings get read in from a string table resource
\r
93 bool CLog::LoadStrings()
\r
95 for(unsigned long i=0;i<MAX_LOG_STRINGS;i++)
\r
98 if(!LoadString(GetModuleHandle(L"engine"),i,(LPTSTR)szBuf,1024))break; //returning 0 means no more strings
\r
99 logStrings[i]=szBuf;
\r
105 *///other platforms load the strings in from strings.txt
\r
106 bool CLog::LoadStrings()
\r
108 std::ifstream in("strings.txt");
\r
109 if(!in.is_open())return false;
\r
111 unsigned long index=0;
\r
116 in.getline(szBuf,1024);
\r
117 logStrings[index++]=szBuf;
\r