程序运行日志的实现(莫名崩溃i)?解决办法

程序运行日志的实现(莫名崩溃i)????!!!
本人写的24小时监测系统,在运行一段时间之后莫名的崩溃,由于是采用的第三方sDk,他写的很不合理,比如采集一帧数据,他如果采集成功了会发消息通知你,但是如果失败等等就没东西返回,这样我就没法判断程序所有可能出现的异常情况!!
  我准备些一个日志,实时记录运行的情况,看看程序都在执行哪些操作的时候崩溃的,我就采用
cfile类定义了一个对象,以后他没进行一步操作,我都将他写进文件,这样的话 由于我这个txt文件时一直打开的,会不会随着文件的增大内存也越来越大啊!!!! 如果每次写的时候再去打开文件,觉得效率有不太高!!!
  每次写的时候代码如下::::
  CTime time=CTime::GetCurrentTime();
CString str,buf;
str.Format("%d-%d-%d %d:%d:%d ",time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());
  buf=str+" 采集成功";
m_runLog.Write(buf,strlen(buf));
m_runLog.Flush();

  我觉得是不是每次都要 Flush()一下啊,在程序崩溃的时候他会自动将缓存的内容写入txt吗??
  请各位高人指点!!!!!!!!

------解决方案--------------------
最好每次都flush一下。

------解决方案--------------------
flush后就到了文件