#pragma once
|
#include <afx.h>
|
|
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)
|