void CXxxx::WriteLogFile(CString sFileName, LPCTSTR pszFormat, ...)
{
CStdioFile file;
CString sDate, sTime;
CString sLogFileName;
CString str_LogPath;
CString str_Data;
CTime curTime = CTime::GetCurrentTime();
TCHAR szOutput[256] = {0,};
va_list argList;
va_start(argList, pszFormat);
::_vstprintf(szOutput, pszFormat, argList);
va_end(argList);
sDate.Format("%04d%02d%02d_", curTime.GetYear(), curTime.GetMonth(), curTime.GetDay());
sTime.Format("[%04d/%02d/%02d %02d:%02d:%02d]", curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(), curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond());
str_LogPath = 폴더명;
CreateDirectory(str_LogPath, NULL);
sLogFileName = str_LogPath + sDate + sFileName + ".txt";
str_Data.Empty();
str_Data.Format("%s %s", sTime, szOutput);
if ( str_Data.GetLength() == 0 )
{
return;
}
TRY
{
if(!file.Open(sLogFileName, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite)) return;
if(file.m_hFile == CFile::hFileNull) return;
if(file.m_pStream==NULL) return;
file.SeekToEnd();
file.WriteString(str_Data);
file.WriteString("\n");
file.Close();
}
CATCH(CException, e)
{
}
END_CATCH
}
※ Timer 값을 Milisecond까지 표현하고 싶을때는 아래를 사용하면 된다.
SYSTEMTIME st;
GetLocalTime(&st);
sTime.Format("[%02d/%02d %02d:%02d:%02d.%03d]", st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
'프로그래밍(C/S) > MFC' 카테고리의 다른 글
SYSTEM의 시간을 설정하기 (0) | 2011.03.11 |
---|---|
SYSTEM의 현재 시간값을 가져오기 (0) | 2011.03.10 |
String Format 형 (1) | 2011.03.10 |
Control 객체들을 XP Style로 변경하기 (0) | 2011.03.10 |
데이터 형식 선언 (0) | 2011.03.04 |