动态调用 WebService (收藏转贴http://www.rainsts.net/article.
发布时间:2020-12-17 02:44:30 所属栏目:安全 来源:网络整理
导读:#pragma once #include stdlib.h class CLogger { public: ??? CLogger(void); ??? CLogger(LPCTSTR lpszFileName,BOOL bAtCurrDir = TRUE,BOOL bLogTime = FALSE,BOOL bAppendMode = FALSE); ??? virtual ~CLogger(void); ??? void Write(const char* forma
#pragma once #include <stdlib.h> class CLogger { public: ??? CLogger(void); ??? CLogger(LPCTSTR lpszFileName,BOOL bAtCurrDir = TRUE,BOOL bLogTime = FALSE,BOOL bAppendMode = FALSE); ??? virtual ~CLogger(void); ??? void Write(const char* format,...); ??? void WriteLine(const char* format,...); ??? void EnableLogTime(BOOL bEnable); private: ??? CStdioFile m_logFile; ??? BOOL m_bLogTime; ??? void OpenFile(LPCTSTR lpszFileName,BOOL bAppendMode); }; ////////////////////////////////////////////////////////////////////////// CLogger::CLogger(LPCTSTR lpszFileName,??? ??? ??? ??? ?BOOL bAtCurrDir /*= TRUE*/,??? ??? ??? ??? ?BOOL bLogTime /*= FALSE*/,??? ??? ??? ??? ?BOOL bAppendMode /*= FALSE*/): m_bLogTime(bLogTime) { ??? CString strLog; ??? if (bAtCurrDir) ??? { ??? ??? TCHAR szFullPath[MAX_PATH]; ??? ??? TCHAR szDir[_MAX_DIR]; ??? ??? TCHAR szDrive[_MAX_DRIVE]; ??? ??? // Get application's full path. ??? ??? ::GetModuleFileName(NULL,szFullPath,MAX_PATH); ??? ??? // Break full path into seperate components. ??? ??? _splitpath(szFullPath,szDrive,szDir,NULL,NULL); ??? ??? // Store application's drive and path ??? ??? strLog.Format(_T("%s%s//%s"),lpszFileName); ??? } ??? else ??? ??? strLog = lpszFileName; ??? OpenFile(strLog,bAppendMode); } CLogger::CLogger() { ??? TCHAR szFileName[MAX_PATH]; ??? ::GetModuleFileName(NULL,szFileName,MAX_PATH); ??? CString strLog(szFileName); ??? CTime t = CTime::GetCurrentTime(); ??? strLog.Replace(".exe",t.Format("_%Y_%m_%d") + ".txt"); ??? OpenFile(strLog,TRUE); } void CLogger::OpenFile(LPCTSTR lpszFileName,BOOL bAppendMode) { ??? int mode = ??? ??? CStdioFile::modeCreate | ??? ??? CStdioFile::modeWrite | ??? ??? CStdioFile::shareDenyWrite; ??? if (bAppendMode) ??? ??? mode |= CStdioFile::modeNoTruncate; ??? m_logFile.Open(lpszFileName,mode); ??? m_logFile.SeekToEnd(); } CLogger::~CLogger(void) { ??? m_logFile.Close(); } void CLogger::Write(const char* format,...) { ??? static TCHAR msg[1024]; ??? va_list argptr; ??? va_start(argptr,format); ??? _vsnprintf(msg,sizeof(msg),format,argptr); ??? va_end(argptr); ??? if (m_bLogTime) ??? ??? m_logFile.WriteString(CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S,").GetBuffer(0)); ??? m_logFile.WriteString(msg); ??? m_logFile.Flush(); } void CLogger::WriteLine(const char* format,").GetBuffer(0)); ??? m_logFile.WriteString(msg); ??? m_logFile.WriteString("/n"); ??? m_logFile.Flush(); } void CLogger::EnableLogTime(BOOL bEnable) { ??? m_bLogTime = bEnable; } ?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |