112 lines
2.6 KiB
C++
112 lines
2.6 KiB
C++
#include "stdafx.h"
|
|
#include "Logger.h"
|
|
#include <atltime.h>
|
|
#include <sys/timeb.h>
|
|
void CLogger::SendAtTime(const TCHAR* buffer)
|
|
{
|
|
EnterCriticalSection(&m_lockLogger);
|
|
if (!m_File)
|
|
{
|
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
|
}
|
|
if(m_File)
|
|
{
|
|
CTime _cTime=CTime::GetCurrentTime();
|
|
CString csTime=_cTime.Format("[%m/%d %H:%M] ");
|
|
_ftprintf(m_File,_T("%s"), csTime);
|
|
_ftprintf(m_File, _T("%s\r\n"), buffer);
|
|
}
|
|
LeaveCriticalSection(&m_lockLogger);
|
|
}
|
|
void CLogger::Send(LPCTSTR format, ...)
|
|
{
|
|
EnterCriticalSection(&m_lockLogger);
|
|
if (!m_File)
|
|
{
|
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
|
}
|
|
int length = 0;
|
|
va_list list;
|
|
va_start(list, format);
|
|
length = vswprintf_s(m_Str,5000, format, list);
|
|
if(m_File)
|
|
{
|
|
_ftprintf(m_File, m_Str);
|
|
}
|
|
LeaveCriticalSection(&m_lockLogger);
|
|
}
|
|
void CLogger::SendAndFlush(LPCTSTR format, ...)
|
|
{
|
|
EnterCriticalSection(&m_lockLogger);
|
|
int length = 0;
|
|
va_list list;
|
|
|
|
va_start(list, format);
|
|
length = vswprintf_s(m_Str2,5000, format, list);
|
|
Send(m_Str2);
|
|
|
|
if(m_File)
|
|
{
|
|
fclose(m_File);
|
|
m_File = NULL;
|
|
if(m_FileName.GetLength() > 0)
|
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
|
}
|
|
LeaveCriticalSection(&m_lockLogger);
|
|
}
|
|
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
|
{
|
|
EnterCriticalSection(&m_lockLogger);
|
|
if (!IsEnabledLog)
|
|
{
|
|
return;
|
|
}
|
|
if (!m_File)
|
|
{
|
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYNO);
|
|
}
|
|
if(m_File)
|
|
{
|
|
int length = 0;
|
|
va_list list;
|
|
va_start(list, format);
|
|
length = vswprintf_s(m_Str2,5000, format, list);
|
|
CTime _cTime=CTime::GetCurrentTime();
|
|
CString csTime=_cTime.Format("[%m/%d %H:%M:%S");
|
|
struct _timeb timebuffer;
|
|
_ftime64_s(&timebuffer);
|
|
if (m_File)
|
|
{
|
|
_ftprintf(m_File, _T("%s:%03d] "), csTime, timebuffer.millitm);
|
|
}
|
|
if (m_File)
|
|
{
|
|
_ftprintf(m_File, m_Str2);
|
|
}
|
|
if (m_File)
|
|
{
|
|
fclose(m_File);
|
|
m_File = NULL;
|
|
}
|
|
}
|
|
LeaveCriticalSection(&m_lockLogger);
|
|
}
|
|
void CLogger::SendAndFlushPerMode(LPCTSTR format, ...)
|
|
{
|
|
EnterCriticalSection(&m_lockLogger);
|
|
int length = 0;
|
|
va_list list;
|
|
|
|
va_start(list, format);
|
|
length = vswprintf_s(m_Str2,5000, format, list);
|
|
Send(m_Str2);
|
|
|
|
if((m_lLogMask & LOGFLUSH) && m_File)
|
|
{
|
|
fclose(m_File);
|
|
m_File = NULL;
|
|
if(m_FileName.GetLength() > 0)
|
|
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
|
|
}
|
|
LeaveCriticalSection(&m_lockLogger);
|
|
} |