我的程序将各种日志信息保存到文本文件中。但是如果程序因内存访问冲突等问题而崩溃,则日志文本文件中没有任何内容。
我认为这是因为程序无法关闭打开的日志文本文件。
目前,我使用 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);
}