| | |
| | | class CLogger |
| | | { |
| | | public: |
| | | static CLogger& Instance(); // 获取单例 |
| | | void WriteLine(CString str); // 写一行日志 |
| | | void CloseLogFile(); // 关闭日志文件 |
| | | static CLogger& Instance(); // 获取单例 |
| | | void WriteLine(CString str); // 写一行日志 |
| | | void CloseLogFile(); // 关闭日志文件 |
| | | |
| | | private: |
| | | CLogger(); |
| | | ~CLogger(); |
| | | void OpenLogFile(); // 内部打开文件 |
| | | CLogger(); |
| | | ~CLogger(); |
| | | void OpenLogFile(); // 内部打开文件 |
| | | |
| | | CCriticalSection m_csLogLock; |
| | | CString m_strCurrentLogPath; |
| | | CStdioFile m_logFile; |
| | | 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) |
| | | do { \ |
| | | CString __log__; \ |
| | | __log__.Format(fmt, __VA_ARGS__); \ |
| | | CLogger::Instance().WriteLine(__log__); \ |
| | | } while (0) |