📄 warlog.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 + -