| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | #pragma once#include <afxmt.h>enum TRACER_TYPE{	TRACER_OPE_PROGRESS = 0		/**< To indicate progress of operation. */	, TRACER_OPE_ERROR = 1		/**< To indicate Error is happened. */	, TRACER_OPE_EXCEPTION = 2	/**< To indicate exceptions. */	, TRACER_OPE_MESSAGE = 3	/**< To indicate message display. */};#define TRACER_OPE_PROGRESS_STR		_T("_TRACE_: ")/**< To indicate progress of operation. */#define TRACER_OPE_ERROR_STR		_T("_ERROR_: ")/**< To indicate Error is happened. */#define TRACER_OPE_EXCEPTION_STR    _T("_EXCEPT_: ")/**< To indicate exceptions. */#define TRACER_OPE_MESSAGE_STR		_T("_MSG_: ")/**< To indicate message display */class CCLogFile{public:	CCLogFile(LPCTSTR szFileName, bool bLogNeedManage = true);	~CCLogFile();public:	void Print(LPCTSTR szData, ...);	void Print(TRACER_TYPE nType, LPCTSTR szData, ...);	void TraceProgress(LPCTSTR szFile, long lLine, LPCTSTR szData, ...);	void TraceError(LPCTSTR szFile, long lLine, LPCTSTR szData, ...);	void TraceException(LPCTSTR szFile, long lLine, LPCTSTR szData, ...);	void TraceMessage(LPCTSTR szFile, long lLine, LPCTSTR szData, ...);	void LogBinaryData(LPCTSTR szHead, BYTE* pbyData, UINT nLen);	CString WChar2Ansi(LPCTSTR pwszSrc);	CString StringToWString(const CString& s);private:	// Methods.	void LogFile(LPCTSTR szData);	void PrintV(LPCTSTR pszFormat, va_list pArgList);	void PrintV(TRACER_TYPE nType, LPCTSTR pszFormat, va_list pArgList);	bool CheckFilePath(const CString& strPath);	HANDLE CreateLogFile(const CString& str);private:	// Data.	CString m_szFile;	///@cond CHS	///临界区变量	///@endcond	///@cond ENG	///Critical Section for text log	///@endcond	CCriticalSection m_csLog;	///@cond CHS	///记录二进制数据临界区变量	///@endcond	///@cond ENG	///Critical Section for binary log	///@endcond	CCriticalSection m_csBinLog;	///@cond CHS	///日志文件名是否已经提交到LogManager	///@endcond	///@cond ENG	///Log filename commit to LogManager flag	///@endcond	bool m_bFileNameCommited;};class CUtilityTools{public:	CUtilityTools(){}	~CUtilityTools()	{	}public:	void WaitingWithEventLoop(int iWaitTime);};
 |