1.背景
需要在操作与测试过程中, 将代码的执行情况以日志的形式输出。有两种方式一种是记录在文本文件中,一种是输出在界面中。
2.代码
2.1 日志记录在文本文件中
void CXXXDlg::OutputLog(LPCTSTR logName, CString msg)
{
try
{
//设置文件的打开参数
CStdioFile outFile(logName, CFile::modeNoTruncate | CFile::modeCreate | CFile::modeWrite | CFile::typeText);
CString msLine;
CTime tt = CTime::GetCurrentTime();
//作为Log文件,经常要给每条Log打时间戳,时间格式可自由定义,
//这里的格式如:2010-June-10 Thursday, 15:58:12
msLine = tt.Format("[%Y-%B-%d %A, %H:%M:%S] ") + msg;
msLine += "\n";
//在文件末尾插入新纪录
outFile.SeekToEnd();
outFile.WriteString( msLine );
outFile.Close();
}
catch(CFileException *fx)
{
fx->Delete();
}
}
2.2日志输出在界面的静态编辑框
void CTrackDemoDlg::OutputLog_Edit(CString m_log)
{
UpdateData(TRUE);
m_Log += m_log;
m_Log += "\r\n";
m_logctrl.SetWindowText(m_Log);
m_logctrl.LineScroll(m_logctrl.GetLineCount());
UpdateData(FALSE);
}
关于编辑框的设置:设置多行显示、设置滑动条。
3说明
在需要输出日志的位置调用就可以了:
OutputLog("log.txt", "初始化成功");
OutputLog_Edit("初始化成功!");