123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #ifndef LOGGER1_H
- #define LOGGER1_H
- #include "LoggerModule_global.h"
- #include <QObject>
- class LOGGER1_EXPORT LogHelper
- {
- Q_DISABLE_COPY(LogHelper)
- public:
- Q_DECL_CONSTEXPR LogHelper()
- : version_(1),
- line_(0),
- file_(Q_NULLPTR),
- function_(Q_NULLPTR)
- {
- }
- LogHelper(const char *fileName, int lineNumber, const char *functionName);
- enum LogType
- {
- LGDebugMsg,
- LGInfoMsg,
- LGWarningMsg,
- LGErrorMsg,
- LGFatalMsg
- };
- QString TemplateParameter ()
- {
- return "";
- }
- template <typename T, typename ... Args>
- QString TemplateParameter(T head, Args ... args)
- {
- return QString("%1 ").arg(head) + TemplateParameter(args...);
- }
- template <typename T, typename ... Args>
- void debug(T head, Args ... args)
- {
- QString logmsg = QString("%1 ").arg(head) + TemplateParameter(args...);
- writelogToLocal(LGDebugMsg,logmsg);
- }
- template <typename T, typename ... Args>
- void info(T head, Args ... args)
- {
- QString logmsg = QString("%1 ").arg(head) + TemplateParameter(args...);
- writelogToLocal(LGInfoMsg,logmsg);
- }
- template <typename T, typename ... Args>
- void warn(T head, Args ... args)
- {
- QString logmsg = QString("%1 ").arg(head) + TemplateParameter(args...);
- writelogToLocal(LGWarningMsg,logmsg);
- }
- template <typename T, typename ... Args>
- void error(T head, Args ... args )
- {
- QString logmsg = QString("%1 ").arg(head) + TemplateParameter(args...);
- writelogToLocal(LGErrorMsg,logmsg);
- }
- template <typename T, typename ... Args>
- void fatal(T head, Args ... args)
- {
- QString logmsg = QString("%1 ").arg(head) + TemplateParameter(args...);
- writelogToLocal(LGFatalMsg,logmsg);
- }
- virtual void writelogToLocal(LogType logtype, const QString& logmsg);
- virtual void copy(const LogHelper &logContext)
- {
- Q_UNUSED(logContext)
- }
- template <typename T>
- inline LogHelper &operator<<(T logmsg)
- {
- writelogToLocal(LGInfoMsg, QString("%1").arg(logmsg));
- return *this;
- }
- public:
- static bool showFileFuncLine_;
- int version_;
- int line_;
- const char *file_;
- const char *function_;
- public:
- static inline LogHelper* getSingletonPtr()
- {
- return &getSingleton();
- }
- static inline LogHelper& getSingleton()
- {
- static LogHelper _instance;
- return _instance;
- }
- };
- #define g_Logger LogHelper::getSingleton()
- #define g_pLogger LogHelper::getSingletonPtr()
- //////////////////////////////////////////////////////////////////////////
- // 断言日志
- //////////////////////////////////////////////////////////////////////////
- #define ASSERT_LOG(expr)\
- if ( (expr) ) {;} else g_Logger.Error(0, __FILE__, __LINE__, #expr);
- #endif // LOGGER1_H
|