#pragma once #include class CLogger { public: static CLogger& Instance(); // »ñÈ¡µ¥Àý void WriteLine(CString str); // дһÐÐÈÕÖ¾ void CloseLogFile(); // ¹Ø±ÕÈÕÖ¾Îļþ private: CLogger(); ~CLogger(); void OpenLogFile(); // ÄÚ²¿´ò¿ªÎļþ CCriticalSection m_csLogLock; CString m_strCurrentLogPath; CStdioFile m_logFile; }; #define LOG_LINE(x) CLogger::Instance().WriteLine(x) #define LOG_LINEF(fmt, ...) \ do { \ CString __log__; \ __log__.Format(fmt, __VA_ARGS__); \ CLogger::Instance().WriteLine(__log__); \ } while (0)