FILE *g_fileLog = NULL; void LogInit() { CString sLogPath = GetModulePath(); sLogPath += L"\\log.txt"; // 事实证明,这里一写要有t,ccs=UTF-8才能正确写出wchar_t g_fileLog = _tfopen(sLogPath, L"at,ccs=UTF-8"); } bool WriteLog(LPCTSTR format, ...) { time_t tm = time(0); TCHAR outBuf[1024] = {0}; int res = _tcsftime(outBuf, 128, _T("[20%y年%m月%d日 %H:%M:%S] "), localtime(&tm)); TCHAR lpszInfoBuf[1024] = {0}; va_list args; va_start (args, format); _vstprintf_s(lpszInfoBuf, 1024, format, args); va_end (args); _tcscat(outBuf, lpszInfoBuf); _tcscat(outBuf, _T("\r\n")); fwrite(outBuf, sizeof(TCHAR), _tcslen(outBuf), g_fileLog); fflush(g_fileLog); return true; } void LogClose() { fclose(g_fileLog); }
这是的GetModulePath 是一个自己写的函数,就是获取当前程序的目录。
使用的时候先调用LogInit(); 程序关闭的时候调用LogClose();
使用示例:
WriteLog(L"打开了%d文件", 10);