我的程序将各种日志信息保存到文本文件中。但是如果程序由于内存访问冲突等问题而崩溃,则日志文本文件中没有任何内容。
我相信这是因为程序未能关闭打开的日志文本文件。
目前,我正在使用FILE *来保存日志文本文件。我可能每次都可以打开和关闭来写每个日志,但我认为这开销太大。
无论程序崩溃或意外停止,还有其他方法可以保留日志吗?
我确实想在程序崩溃之前查看日志。
我正在为我的程序使用 C++/CLI。非常感谢您提前。
FILE* logfile;
errno_t err;
char LogFileNameBuf[512] = {0,};
sprintf_s(LogFileNameBuf, "LogFile.txt");
err = fopen_s(&logfile, LogFileNameBuf, "wt");
if(logfile != NULL)
{
bLogfile = true;
GetLocalTime(&st);
sprintf_s(logBuf, "[%04d-%02d-%02d][%02d:%02d:%02d] SUCCESS:: Log Started\n", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
fputs(logBuf, logfile);
}
// close log file
if(bLogfile == true)
{
GetLocalTime(&st);
sprintf_s(logBuf, "[%04d-%02d-%02d][%02d:%02d:%02d] SUCCESS:: Log File Closed\n", st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
fputs(logBuf, logfile);
fclose(logfile);
}