63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#if !defined(LOGGER_H__5142BB38_5565_4124_88A4_56EA08298154__INCLUDED_)
|
|
#define LOGGER_H__5142BB38_5565_4124_88A4_56EA08298154__INCLUDED_
|
|
|
|
#include <afxwin.h>
|
|
#include <afxext.h>
|
|
#include <wincon.h>
|
|
#include <string.h>
|
|
#include <share.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
|
|
const long LOGINIT = 0x0001;
|
|
const long LOGACTIONS = 0x0002;
|
|
const long LOGCOMM = 0x0004;
|
|
const long LOGFLUSH = 0x0008;
|
|
|
|
class CLogger
|
|
{
|
|
public:
|
|
|
|
CLogger(CString m_Name)
|
|
{
|
|
IsEnabledLog = false;
|
|
m_File = NULL;
|
|
CString Path=_T(""); // Speed optimization - noticed slow in GlowCode
|
|
if (Path.IsEmpty()) {
|
|
CString tmpPath;
|
|
GetModuleFileName(NULL,tmpPath.GetBuffer(255),255);
|
|
tmpPath.ReleaseBuffer();
|
|
tmpPath.TrimRight();
|
|
int nLastSlash = tmpPath.ReverseFind('\\');
|
|
if (nLastSlash >= 0)
|
|
tmpPath = tmpPath.Left(nLastSlash);
|
|
else
|
|
tmpPath.Empty();
|
|
Path=tmpPath;
|
|
}
|
|
m_FileName=Path + m_Name;//_T("\\SO7_SSILog.txt");
|
|
m_lLogMask=0;
|
|
InitializeCriticalSection(&m_lockLogger);
|
|
};
|
|
~CLogger()
|
|
{
|
|
if (m_File)
|
|
fclose(m_File);
|
|
DeleteCriticalSection(&m_lockLogger);
|
|
};
|
|
void SendAtTime(const TCHAR* buffer);
|
|
void Send(LPCTSTR, ...);
|
|
void SendAndFlush(LPCTSTR, ...);
|
|
void SendAndFlushPerMode(LPCTSTR, ...);
|
|
void SendAndFlushWithTime(LPCTSTR, ...);
|
|
bool IsEnabledLog/* = false*/;//是否启用日志
|
|
CString m_FileName;
|
|
long m_lLogMask;
|
|
FILE *m_File;
|
|
_TCHAR m_Str[20000];
|
|
_TCHAR m_Str2[20000];
|
|
CRITICAL_SECTION m_lockLogger;
|
|
};
|
|
|
|
#endif // !defined(LOGGER_H__5142BB38_5565_4124_88A4_56EA08298154__INCLUDED_)
|