xref: /rkdeveloptool/RKLog.h (revision 76af099afcbcafd97801028de2ba3421d3c12865)
1*76af099aSliuyi #ifndef RKLOG_HEADER
2*76af099aSliuyi #define RKLOG_HEADER
3*76af099aSliuyi #include "DefineHeader.h"
4*76af099aSliuyi 
5*76af099aSliuyi #define GET_FMT_STRING(fmt, buf) \
6*76af099aSliuyi 	{ \
7*76af099aSliuyi 	va_list args; \
8*76af099aSliuyi 	va_start(args, fmt); \
9*76af099aSliuyi 	vsnprintf(buf, sizeof(buf)-1, fmt, args); \
10*76af099aSliuyi 	va_end(args); \
11*76af099aSliuyi 	buf[sizeof(buf)-1] = 0x00; \
12*76af099aSliuyi };
13*76af099aSliuyi 
14*76af099aSliuyi class CRKLog
15*76af099aSliuyi {
16*76af099aSliuyi public:
17*76af099aSliuyi 	string GetLogSavePath();
18*76af099aSliuyi  	bool GetEnableLog();
19*76af099aSliuyi  	void SetEnableLog(bool bEnable);
20*76af099aSliuyi  	property<CRKLog, string, READ_ONLY> LogSavePath;
21*76af099aSliuyi  	property<CRKLog, bool, READ_WRITE> EnableLog;
22*76af099aSliuyi 	CRKLog(string logFilePath, string logFileName, bool enable = true);
23*76af099aSliuyi 	~CRKLog();
24*76af099aSliuyi 	bool SaveBuffer(string fileName, PBYTE lpBuffer, DWORD dwSize);
25*76af099aSliuyi 	void PrintBuffer(string &strOutput, PBYTE lpBuffer, DWORD dwSize, UINT uiLineCount = 16);
26*76af099aSliuyi 	void Record(const char *lpFmt, ...);
27*76af099aSliuyi 
28*76af099aSliuyi protected:
29*76af099aSliuyi private:
30*76af099aSliuyi 	string m_path;
31*76af099aSliuyi 	string  m_name;
32*76af099aSliuyi 	bool    m_enable;
33*76af099aSliuyi 	bool Write(string text);
34*76af099aSliuyi };
35*76af099aSliuyi typedef enum {
36*76af099aSliuyi 	STAT_NOT_EXIST = 0,
37*76af099aSliuyi 	STAT_FILE,
38*76af099aSliuyi 	STAT_DIR
39*76af099aSliuyi } ENUM_FILE_STAT;
40*76af099aSliuyi int file_stat(string strPath);
41*76af099aSliuyi #endif