?? logger.cpp
字號:
#include <windows.h>
#include "logger.h"
#define _INTERNAL_LOG_NAME L"\\touch-proxy.log"
void WriteFileWChar(HANDLE hFile, TCHAR* buf)
{
char cbuf[1025];
DWORD w = wcslen(buf);
w = WideCharToMultiByte(CP_ACP, 0, buf, w, cbuf, sizeof(cbuf), NULL, NULL);
WriteFile(hFile, cbuf, w, (LPDWORD)&w, NULL);
}
TCHAR* hLogFileName = 0;
static HANDLE hLogFile = 0;
void LogEventFile(LPCTSTR str, ...)
{
if (str == NULL) return;
if (!hLogFileName)
{
TCHAR buf[MAX_PATH+1];
wcscpy(buf, L"");
wcscat(buf, _INTERNAL_LOG_NAME);
hLogFileName = (TCHAR*)malloc(sizeof(TCHAR)*wcslen(buf)+1);
wcscpy(hLogFileName, buf);
hLogFile = CreateFile(hLogFileName, GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
SetFilePointer(hLogFile, 0, NULL, FILE_END);
_LOG(L"New log begins...\n");
}
if (!hLogFile && hLogFileName)
{
hLogFile = CreateFile(hLogFileName, GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
SetFilePointer(hLogFile, 0, NULL, FILE_END);
}
if (hLogFile)
{
TCHAR buf[1025];
SYSTEMTIME stime;
GetLocalTime(&stime);
wsprintf(buf, L"%02d-%02d-%02d %02d:%02d:%02d ",
stime.wYear, stime.wMonth, stime.wDay, stime.wHour, stime.wMinute, stime.wSecond);
WriteFileWChar(hLogFile, buf);
va_list argptr;
va_start(argptr, str);
HRESULT ecode;
if (FAILED(ecode=StringCchVPrintf(buf, 1100, str, argptr)))
StringCchPrintf(buf, 1100, L"StringCchVPrintf error: %d\n", ecode);
va_end(argptr);
WriteFileWChar(hLogFile, buf);
#ifdef LOG_EXCLUSIVE
FlushFileBuffers(hLogFile);
#else
CloseHandle(hLogFile);
hLogFile = 0;
#endif
}
}
void LogEventDebug(LPCTSTR str, ...)
{
if (str == NULL) return;
TCHAR buf[1100];
va_list argptr;
va_start(argptr, str);
HRESULT ecode;
if (FAILED(ecode=StringCchVPrintf(buf, 1100, str, argptr)))
StringCchPrintf(buf, 1100, L"StringCchVPrintf error: %d\n", ecode);
va_end(argptr);
OutputDebugString(buf);
}
void LogEventNull(LPCTSTR str, ...)
{
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -