Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
252
Server/NFAuthTool/NFAuthServer/Nave/NFLog.cpp
Normal file
252
Server/NFAuthTool/NFAuthServer/Nave/NFLog.cpp
Normal file
@@ -0,0 +1,252 @@
|
||||
#include "Nave.h"
|
||||
#include "NFStringUtil.h"
|
||||
#include <list>
|
||||
|
||||
#include "NFLog.h"
|
||||
|
||||
namespace Nave {
|
||||
|
||||
HWND NFLog::s_hLogHandel = NULL;
|
||||
BOOL NFLog::s_bEnableLogPrint = TRUE;
|
||||
BOOL NFLog::s_bSaveLogFile = FALSE;
|
||||
int NFLog::s_iLogLimit = NFLog::Info;
|
||||
BOOL NFLog::s_bLogDetail = FALSE;
|
||||
NFLogManager* NFLog::s_pLogManager = NULL;
|
||||
|
||||
|
||||
// Message<67><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
void NFLog::SetLogHandel(HWND hListWnd)
|
||||
{
|
||||
s_hLogHandel = hListWnd;
|
||||
}
|
||||
|
||||
void NFLog::SetLogPrint(BOOL enable)
|
||||
{
|
||||
s_bEnableLogPrint = enable;
|
||||
}
|
||||
|
||||
void NFLog::SetLogOutput(BOOL enable, DWORD dwSize)
|
||||
{
|
||||
s_bSaveLogFile = enable;
|
||||
SetLogPrint(enable);
|
||||
|
||||
_DELETE(s_pLogManager);
|
||||
if(s_bSaveLogFile)
|
||||
{
|
||||
s_pLogManager = new NFLogManager();
|
||||
s_pLogManager->Initialize(FALSE);
|
||||
s_pLogManager->SetLogMaxSize(dwSize);
|
||||
}
|
||||
}
|
||||
|
||||
void NFLog::CloseLog()
|
||||
{
|
||||
if(s_pLogManager)
|
||||
{
|
||||
s_pLogManager->Flush();
|
||||
_DELETE(s_pLogManager);
|
||||
}
|
||||
}
|
||||
|
||||
void NFLog::SetLogLimit(int limit)
|
||||
{
|
||||
s_iLogLimit=limit;
|
||||
}
|
||||
|
||||
void NFLog::SetLogDetail(BOOL detail)
|
||||
{
|
||||
s_bLogDetail = detail;
|
||||
}
|
||||
|
||||
void NFLog::AddLogMsg( HWND hWnd, WCHAR* String, int Len )
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
int iCount = (int)SendMessageW( hWnd, LB_GETCOUNT, 0, 0L )-256;
|
||||
for(int i = 0; i < iCount; ++i)
|
||||
SendMessageW( hWnd, LB_DELETESTRING, 0, 0L );
|
||||
|
||||
// <20>߰<EFBFBD>
|
||||
WCHAR* p;
|
||||
int k;
|
||||
p = String;
|
||||
|
||||
int iAdd = 0;
|
||||
|
||||
k = 0;
|
||||
while( k++ < Len )
|
||||
{
|
||||
switch( *String )
|
||||
{
|
||||
case L'\n':
|
||||
*String = 0;
|
||||
++iAdd;
|
||||
SendMessageW( hWnd, LB_ADDSTRING, 0, (LPARAM)(LPWSTR)p );
|
||||
p = ++String;
|
||||
break;
|
||||
default :
|
||||
++String;
|
||||
}
|
||||
}
|
||||
|
||||
if( *p )
|
||||
{
|
||||
++iAdd;
|
||||
SendMessageW( hWnd, LB_ADDSTRING, 0, (LPARAM)(LPWSTR)p );
|
||||
}
|
||||
|
||||
int Top = (int)SendMessageW( hWnd, LB_GETTOPINDEX, 0, 0L );
|
||||
SendMessageW( hWnd, LB_SETTOPINDEX, Top+iAdd, 0L );
|
||||
}
|
||||
|
||||
void NFLog::LogPrintf( WCHAR* msg, ... )
|
||||
{
|
||||
va_list v;
|
||||
WCHAR buf[1024];
|
||||
int len;
|
||||
|
||||
va_start( v, msg );
|
||||
len = vswprintf( buf, msg, v );
|
||||
|
||||
va_end( v );
|
||||
|
||||
LogPrintf( Info, buf);
|
||||
}
|
||||
|
||||
void NFLog::OutputLog(const WCHAR* log)
|
||||
{
|
||||
static CHAR stDot[4] = "\r\n";
|
||||
static CHAR stTime[32];
|
||||
|
||||
SYSTEMTIME sysTime;
|
||||
GetLocalTime(&sysTime);
|
||||
|
||||
sprintf(stTime, "[%04d.%02d.%02d-%02d:%02d:%02d]", sysTime.wYear, sysTime.wMonth, sysTime.wDay, sysTime.wHour, sysTime.wMinute, sysTime.wSecond);
|
||||
|
||||
Nave::StringA str = stTime;
|
||||
str += ToASCII(log);
|
||||
str += stDot;
|
||||
|
||||
int iSize = str.size();
|
||||
char* pPoint = s_pLogManager->ReserveBuffer(iSize);
|
||||
memcpy(pPoint, str.c_str(), iSize);
|
||||
}
|
||||
|
||||
void NFLog::LogPrintf( int group, WCHAR* msg )
|
||||
{
|
||||
if (group < s_iLogLimit)
|
||||
return;
|
||||
|
||||
if(s_bEnableLogPrint)
|
||||
{
|
||||
if(s_hLogHandel == NULL)
|
||||
{
|
||||
// setlocale <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ѱ<EFBFBD><D1B1><EFBFBD> <20><><EFBFBD>µ<EFBFBD>
|
||||
wprintf(msg);
|
||||
wprintf(L"\n");
|
||||
}
|
||||
else
|
||||
AddLogMsg( s_hLogHandel, msg, (int)wcslen(msg) );
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
OutputDebugStringW( msg );
|
||||
OutputDebugStringW( L"\r\n" );
|
||||
#endif
|
||||
if(s_bSaveLogFile)
|
||||
{
|
||||
Nave::StringW tmp = msg;
|
||||
Nave::StringW logmsg;
|
||||
switch (group) {
|
||||
case Info:
|
||||
logmsg=L"[INF] " + tmp;
|
||||
break;
|
||||
case Warning:
|
||||
logmsg=L"[WAR] " + tmp;
|
||||
break;
|
||||
case Error:
|
||||
logmsg=L"[ERR] " + tmp;
|
||||
break;
|
||||
case Exception:
|
||||
logmsg=L"[EXP] " + tmp;
|
||||
break;
|
||||
case Important:
|
||||
logmsg=L"[DET] " + tmp;
|
||||
break;
|
||||
};
|
||||
|
||||
OutputLog(logmsg.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void NFLog::LogPrintf( int group, const WCHAR* pFile, int pLinenum, const WCHAR* pFunc, WCHAR* msg )
|
||||
{
|
||||
if (group < s_iLogLimit)
|
||||
return;
|
||||
|
||||
if(s_bEnableLogPrint)
|
||||
{
|
||||
if(s_hLogHandel == NULL)
|
||||
{
|
||||
wprintf(msg);
|
||||
wprintf(L"\n");
|
||||
}
|
||||
else
|
||||
AddLogMsg( s_hLogHandel, msg, (int)wcslen(msg) );
|
||||
}
|
||||
|
||||
#ifdef _DEBUG
|
||||
OutputDebugStringW( msg );
|
||||
OutputDebugStringW( L"\r\n" );
|
||||
#endif
|
||||
|
||||
if(s_bSaveLogFile)
|
||||
{
|
||||
Nave::StringW tmp = msg;
|
||||
Nave::StringW logmsg;
|
||||
switch (group) {
|
||||
case Info:
|
||||
logmsg=L"[INF]" + tmp;
|
||||
break;
|
||||
case Warning:
|
||||
logmsg=L"[WAR]" + tmp;
|
||||
break;
|
||||
case Error:
|
||||
logmsg=L"[ERR]" + tmp;
|
||||
break;
|
||||
case Exception:
|
||||
logmsg=L"[EXP]" + tmp;
|
||||
break;
|
||||
case Important:
|
||||
logmsg=L"[DET]" + tmp;
|
||||
break;
|
||||
};
|
||||
|
||||
OutputLog(logmsg.c_str());
|
||||
|
||||
static WCHAR deta[1024];
|
||||
swprintf(deta, L" -> [%s,%d,%s]", pFile, pLinenum, pFunc);
|
||||
OutputLog(deta);
|
||||
}
|
||||
}
|
||||
|
||||
NFLog::Proxy::Proxy(int pGroup, const WCHAR* pFile, int pLinenum, const WCHAR* pFunc) : file(pFile),linenum(pLinenum), func(pFunc), group(pGroup)
|
||||
{
|
||||
}
|
||||
|
||||
void NFLog::Proxy::Log(const WCHAR* msg, ...)
|
||||
{
|
||||
if (group < NFLog::s_iLogLimit)
|
||||
return;
|
||||
|
||||
WCHAR txt[1024];
|
||||
va_list l;
|
||||
va_start(l,msg);
|
||||
_vsnwprintf( txt, 1024, msg, l );
|
||||
va_end(l);
|
||||
if(!NFLog::s_bLogDetail)
|
||||
LogPrintf(group,txt);
|
||||
else
|
||||
LogPrintf(group,file,linenum,func,txt); // <20>̰<EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><>Ÿ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>涧..
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user