CLog 頭 代碼很簡單 如果需要的直接Ctrl+C ----Ctrl+V 即可
#ifndef __CLOG__#define __CLOG__#include <windows.h>#include <string>#include <fstream>#include <tchar.h>#include <ctime>class CLog{public:  CLog();  CLog(const std::string LogFile);  ~CLog();  template <class T>  static void WriteLog(T x);  //支持格式化輸出多參數輸出  static void WriteLogFormat(const char* format, ...);private:  static std::string GetFilePath();  std::string m_LogFilePath;  static std::string GetSystemTimes();  static bool IsPathExist(const std::string FilePath);};//支持輸出int double 文本 template <class T> void CLog::WriteLog(T x){  std::fstream of(GetFilePath(), std::ios::app);  if (!of.is_open())return;  of.seekp(std::ios::end);  //設置文件指針到文件尾部  of << GetSystemTimes() <<_T("line: ")<<__LINE__<<_T(" value: ")<< x << std::endl;  of.close();  //關閉文件;}#endifCLog.cpp
#include "Log.h"CLog::CLog()  :m_LogFilePath(""){  m_LogFilePath = GetFilePath();  if (IsPathExist(m_LogFilePath))    DeleteFile(m_LogFilePath.c_str());}CLog::CLog(const std::string LogFile)  :m_LogFilePath(LogFile){  if (IsPathExist(m_LogFilePath))    DeleteFile(m_LogFilePath.c_str());}CLog::~CLog(){}void CLog::WriteLogFormat(const char* format, ...){  va_list arglist;  std::string strArgData;  char szBuffer[0x1024];  ZeroMemory(szBuffer, 0x1024);  va_start(arglist, format);  vsprintf_s(szBuffer, format, arglist);  va_end(arglist);  strArgData = szBuffer;  std::fstream of(GetFilePath(), std::ios::app);  if (!of.is_open())return;  of << GetSystemTimes() << " Line: " << __LINE__ << " Value: " << strArgData << std::endl;  of.close();}std::string CLog::GetFilePath(){  std::string FlieTmp;  TCHAR szPath[MAX_PATH];  ::ZeroMemory(szPath, MAX_PATH);  if (!::GetCurrentDirectory(MAX_PATH, szPath))return FlieTmp;  FlieTmp = szPath;  FlieTmp += _T("http://log.txt");  return FlieTmp;}std::string CLog::GetSystemTimes(){  time_t Time;  CHAR strTime[MAX_PATH];  ZeroMemory(strTime, MAX_PATH);  time(&Time);  tm t;  localtime_s(&t, &Time);  strftime(strTime, 100, _T("%Y-%m-%d %H:%M:%S "), &t);  std::string strTimes = strTime;  return strTimes;}bool CLog::IsPathExist(const std::string FilePath){  DWORD dwAttribute = ::GetFileAttributes(FilePath.c_str());  return dwAttribute != INVALID_FILE_ATTRIBUTES;}好了這篇文章就介紹到這了,需要的朋友可以的參考一下。
新聞熱點
疑難解答
圖片精選