|
@@ -1,5 +1,6 @@
|
|
|
#include "Assist.h"
|
|
|
-
|
|
|
+#include <time.h>
|
|
|
+#include <locale.h>
|
|
|
|
|
|
namespace Assist
|
|
|
{
|
|
@@ -64,7 +65,7 @@ namespace Assist
|
|
|
{
|
|
|
if (!PathFileExists(szAppPath))
|
|
|
{
|
|
|
- printf("Error, %ls path not exists!\n", szAppPath);
|
|
|
+ WriteTextLog(_T("Error, %ls path not exists!\n"), szAppPath);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -85,6 +86,8 @@ namespace Assist
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ WriteTextLog(_T("启动进程失败:%d"), GetLastError());
|
|
|
+
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -318,4 +321,53 @@ namespace Assist
|
|
|
|
|
|
return hTagWnd;
|
|
|
}
|
|
|
+
|
|
|
+ void WriteTextLog(const TCHAR* format, ...)
|
|
|
+ {
|
|
|
+ // 获取今年年份;
|
|
|
+ __time64_t gmt = time(NULL);// 获取当前日历时间(1900-01-01开始的Unix时间戳);
|
|
|
+ struct tm gmtm = { 0 };
|
|
|
+ localtime_s(&gmtm, &gmt); // 时间戳转成本地时间;
|
|
|
+
|
|
|
+ // 解析出日志路径;
|
|
|
+ TCHAR szlogpath[MAX_PATH] = { 0 };
|
|
|
+ _stprintf_s(szlogpath, _T("%s\\%04d-%02d-%02d.txt"), g_szCurModuleDir, gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday);
|
|
|
+ // 打开或创建文件;
|
|
|
+ FILE* fp = NULL;
|
|
|
+ if (_taccess(szlogpath, 0) != -1)
|
|
|
+ {// 存在;
|
|
|
+ if (0 == _tfopen_s(&fp, szlogpath, _T("a+")))
|
|
|
+ // 移动到末尾;
|
|
|
+ fseek(fp, 0, SEEK_END);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {// 不存在;
|
|
|
+ _tfopen_s(&fp, szlogpath, _T("w+"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (fp == NULL)
|
|
|
+ return;
|
|
|
+
|
|
|
+ // 格式化前设置语言区域;
|
|
|
+ TCHAR* old_locale = _tcsdup(_tsetlocale(LC_CTYPE, NULL));
|
|
|
+ _tsetlocale(LC_CTYPE, _T("chs"));//设定中文;
|
|
|
+
|
|
|
+ // 格式化日志内容;
|
|
|
+ va_list args = NULL;
|
|
|
+ int len = 0;
|
|
|
+ TCHAR* buffer = NULL;
|
|
|
+ va_start(args, format);
|
|
|
+ // _vscprintf doesn't count. terminating '\0'
|
|
|
+ len = _vsctprintf(format, args) + 1;
|
|
|
+ buffer = (TCHAR*)malloc(len * sizeof(TCHAR));
|
|
|
+ _vstprintf_s(buffer, len, format, args);
|
|
|
+ // 将日志内容输入到文件中;
|
|
|
+ _ftprintf(fp, _T("%04d-%02d-%02d %02d:%02d:%02d %s\n"), gmtm.tm_year + 1900, gmtm.tm_mon + 1, gmtm.tm_mday, gmtm.tm_hour, gmtm.tm_min, gmtm.tm_sec, buffer);
|
|
|
+
|
|
|
+ // 关闭文件,释放资源并设置回原语言区域;
|
|
|
+ free(buffer);
|
|
|
+ fclose(fp);
|
|
|
+ _tsetlocale(LC_CTYPE, old_locale);
|
|
|
+ free(old_locale);//还原区域设定;
|
|
|
+ }
|
|
|
};
|