#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)