#pragma once #include #include "String.DString.hpp" //----------------------------------------------------------------------------- // shareLog 用于与别的模块共享 Logger 对象 // CSXXX 模块可能没有机会初始化 mLog::gLogger 对象, 这种情况下只能与下层的 C++ 模块共享日志 //----------------------------------------------------------------------------- _declspec(dllimport) Log4CPP::Logger * shareLogger; namespace mLog { inline void NewLine () { if (! shareLogger) return; shareLogger->NewLine (); } template inline void Force (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Force (fmt, std::forward (args)...); } template inline void Log (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Info (fmt, std::forward (args)...); } template inline void Trace (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Trace (fmt, std::forward (args)...); } template inline void Debug (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Debug (fmt, std::forward (args)...); } template inline void Info (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Info (fmt, std::forward (args)...); } template inline void Notice (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Notice (fmt, std::forward (args)...); } template inline void Warn (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Warn (fmt, std::forward (args)...); } template inline void Warning (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Warn (fmt, std::forward (args)...); } template inline void Error (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Error (fmt, std::forward (args)...); } template inline void Fatal (const char * fmt, Args && ... args) { if (! shareLogger) return; shareLogger->Fatal (fmt, std::forward (args)...); } inline void Flush (const eSTR::DStringView & str) { if (! shareLogger) return; shareLogger->LogNoFormat (Log4CPP::enInfo, str, str.GetLength (), false); } inline void Flush (const eSTR::DString & str) { if (! shareLogger) return; shareLogger->LogNoFormat (Log4CPP::enInfo, str, str.GetLength (), false); } inline void LogNoFormat (int Level, const eSTR::DString & str, bool bWithLayout = false) { if (! shareLogger) return; shareLogger->LogNoFormat (Level, str, str.GetLength (), bWithLayout); } inline void LogNoFormat (int Level, const char * buf, int len, bool bWithLayout = false) { if (! shareLogger) return; shareLogger->LogNoFormat (Level, buf, len, bWithLayout); } inline bool Decide (int Level) { if (! shareLogger) return false; return (shareLogger->Decide (Level)); } inline void Close () { if (! shareLogger) return; shareLogger->Close (); } inline eSTR::DString ErrorCodeToString (DWORD errorCode) { if (! shareLogger) return eSTR::DString (); return shareLogger->ErrorCodeToString (errorCode); } inline int CurrentLevel () { if (! shareLogger) return 0; return shareLogger->GetLevel (); } inline eSTR::DString CurrentLevelName () { if (! shareLogger) return eSTR::DString (); return shareLogger->LogLevelToString (shareLogger->GetLevel ()); } };