#pragma once #include #include "String.DString.hpp" #define __X_LOG_LOG4CPP__ //----------------------------------------------------------------------------- // xLog 是对 gLogger 的简单封装 // xLog 可以理解为 exLog, 或者 extraLog 的短名称 // 某些组件需要写到两个 Logger 中, 可以包含这个 hpp // 纯粹从 mLog 复制而来 //----------------------------------------------------------------------------- namespace xLog { extern Log4CPP::Logger * gLogger; inline void NewLine () { if (! gLogger) return; gLogger->NewLine (); } inline eSTR::DString ErrorCodeToString (DWORD errorCode) { if (! gLogger) return eSTR::DString (); return gLogger->ErrorCodeToString (errorCode); } template inline void Force (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Force (fmt, std::forward (args)...); } template inline void Log (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Info (fmt, std::forward (args)...); } template inline void Trace (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Trace (fmt, std::forward (args)...); } template inline void Debug (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Debug (fmt, std::forward (args)...); } template inline void Info (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Info (fmt, std::forward (args)...); } template inline void Notice (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Notice (fmt, std::forward (args)...); } template inline void Warn (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Warn (fmt, std::forward (args)...); } template inline void Warning (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Warn (fmt, std::forward (args)...); } template inline void Error (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Error (fmt, std::forward (args)...); } template inline void Fatal (const char* fmt, Args && ... args) { if (! gLogger) return; gLogger->Fatal (fmt, std::forward (args)...); } inline void Flush (const eSTR::DStringView & str) { if (! gLogger) return; gLogger->LogNoFormat (Log4CPP::enInfo, str, str.GetLength (), false); } inline void Flush (const eSTR::DString & str) { if (! gLogger) return; gLogger->LogNoFormat (Log4CPP::enInfo, str, str.GetLength (), false); } inline void Flush (const char * str, int len) { if (! gLogger) return; gLogger->LogNoFormat (Log4CPP::enInfo, str, len, false); } inline void LogNoFormat (int Level, const eSTR::DString & str, bool bWithLayout = false) { if (! gLogger) return; gLogger->LogNoFormat (Level, str, str.GetLength (), bWithLayout); } inline void LogNoFormat (int Level, const char* buf, int len, bool bWithLayout = false) { if (! gLogger) return; gLogger->LogNoFormat (Level, buf, len, bWithLayout); } inline bool Decide (int Level) { if (! gLogger) return false; return (gLogger->Decide (Level)); } inline void Close () { if (! gLogger) return; gLogger->Close (); } };