私のプログラムはあらゆる種類のログ情報をテキスト ファイルに保存します。ただし、メモリ アクセス違反などの問題が原因でプログラムがクラッシュしている場合、ログ テキスト ファイルには何も記録されません。
プログラムが開いているログ テキスト ファイルを閉じられなかったことが原因だと思います。
現在、ログ テキスト ファイルの保存に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);
}