⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 warlog.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarLog.h"   // class implemented/////////////////////////////// PUBLIC ///////////////////////////////////////const char WarLog::sTypeChr[WARLOG_INVALID + 1] ={ "DEFISWSNsrcddLOAAACSDDNDD" };const char *WarLog::sTypeString[WARLOG_INVALID + 1] = {    {"WARLOG_DEBUG"},    {"WARLOG_ERROR"},    {"WARLOG_FILEACC"},    {"WARLOG_INOUT"},    {"WARLOG_SECURITY"},    {"WARLOG_WARNINGS"},    {"WARLOG_SYSTEM"},    {"WARLOG_SOCKET"},    {"WARLOG_SNDFILE"},    {"WARLOG_RCVFILE"},    {"WARLOG_CREDIR"},    {"WARLOG_DELDIR"},    {"WARLOG_DELFILE"},    {"WARLOG_LOGIN"},    {"WARLOG_LOGOUT"},    {"WARLOG_CREACC"},    {"WARLOG_DELACC"},    {"WARLOG_CHGACC"},    {"WARLOG_CPS"},    {"WARLOG_INFO"},    {"WARLOG_THREADS"},    {"WARLOG_FILES"},    {"WARLOG_NETWORK"},    {"WARLOG_DEBUG_FTP"},    {"WARLOG_DEBUG_HTTP"}};//============================= LIFECYCLE ====================================WarLog::WarLog(WarLogEventTypeE logType, 			   war_ccstr_t logFunction,			   WarLogIdentifier *pidentifier) :mpData(NULL),mType(logType),mIdentifier(pidentifier){    if (WAR_IS_LOGEVENT_IN_USE(mType))    {        mpData = new WarLogEventData(mType, logFunction, mIdentifier);    }}// WarLogWarLog::~WarLog(){    if (mpData)    {        delete mpData;        mpData = NULL;    }}// ~WarLog//============================= OPERATORS ====================================WarLog::operator bool () const{    return WAR_IS_LOGEVENT_IN_USE(mType);}WarLogEventTypeE WarLog::Lookup(war_ccstr_t eventName){    int i = 0;    for(; i < WARLOG_INVALID; i++)    {        if (!stricmp(eventName, WarLog::sTypeString[i]))            break;    }    return (WarLogEventTypeE)i;}//============================= OPERATIONS ===================================//============================= ACESS      ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ////////////////////////////////////* Build a log-event ant send it to the event-chain. */void WarLog::Submit(){    if (!mpData)        return;    mpData->mTime.Reset();    mpData->mMessage = GetValue();    WarLogEngine::GetEngine().LogEvent(new WarLogEvent(*mpData));    Reset();    mpData->mError.Reset();    mpData->mMessage.erase();    mpData->mInterfaceName.erase();    mpData->mUser.erase();}/////////////////////////////// PRIVATE    /////////////////////////////////////============================= EXTERNAL REFERENCES ==========================void WarLogError(war_ccstr_t func, war_ccstr_t message,                 WarException *pexception){#if WAR_CATCH_ALL    try#endif    {        std::string explanation;        if (pexception)            explanation = pexception->Explain();        WarLog err_log(WARLOG_ERROR, "WarLogError");        err_log << "From "             << func             << " : "             << message            << " : "            << explanation            << war_endl;    }#if WAR_CATCH_ALL    catch(...)    {    }#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -