1 // Log.cpp: implementation of the CLog class.
\r
3 //////////////////////////////////////////////////////////////////////
\r
9 //////////////////////////////////////////////////////////////////////
\r
10 // Construction/Destruction
\r
11 //////////////////////////////////////////////////////////////////////
\r
14 CMMPointer< CSettingVariable<std::string> > CLog::appLogName=0;
\r
15 CMMPointer< CSettingVariable<std::string> > CLog::clientLogName=0;
\r
16 CMMPointer< CSettingVariable<std::string> > CLog::serverLogName=0;
\r
32 appLog.open("applog.txt");
\r
33 clientLog.open("clntlog.txt");
\r
34 serverLog.open("srvrlog.txt");
\r
35 //user errors get logged to client
\r
37 //load the strings file
\r
38 if(!LoadStrings())return false;
\r
43 void CLog::Write(int target, const char *msg, ...)
\r
45 va_list args; va_start(args,msg);
\r
47 vsprintf_s(szBuf,1024,msg,args);
\r
51 appLog<<szBuf<<"\n";
\r
56 if(target&LOG_CLIENT)
\r
58 clientLog<<szBuf<<"\n";
\r
63 if(target&LOG_SERVER)
\r
65 serverLog<<szBuf<<"\n";
\r
73 MessageBox(NULL,(LPCTSTR)szBuf,L"Message",MB_OK);
\r
75 std::cout << szBuf << "\n";
\r
81 void CLog::Write(int target, unsigned long msgID, ...)
\r
83 va_list args; va_start(args, msgID);
\r
85 vsprintf_s(szBuf,1024,logStrings[msgID].c_str(),args);
\r
86 Write(target,szBuf);
\r
91 //under Win32, the strings get read in from a string table resource
\r
92 bool CLog::LoadStrings()
\r
94 for(unsigned long i=0;i<MAX_LOG_STRINGS;i++)
\r
97 if(!LoadString(GetModuleHandle(L"engine"),i,(LPTSTR)szBuf,1024))break; //returning 0 means no more strings
\r
98 logStrings[i]=szBuf;
\r
104 *///other platforms load the strings in from strings.txt
\r
105 bool CLog::LoadStrings()
\r
107 std::ifstream in("strings.txt");
\r
108 if(!in.is_open())return false;
\r
110 unsigned long index=0;
\r
115 in.getline(szBuf,1024);
\r
116 logStrings[index++]=szBuf;
\r