2019-08-19 19:19:58 +08:00
|
|
|
|
#ifndef HGL_LOGINFO_INCLUDE
|
|
|
|
|
#define HGL_LOGINFO_INCLUDE
|
|
|
|
|
|
|
|
|
|
#include<iostream>
|
|
|
|
|
#include<hgl/CodePage.h>
|
|
|
|
|
|
|
|
|
|
namespace hgl
|
|
|
|
|
{
|
|
|
|
|
namespace logger
|
|
|
|
|
{
|
2023-01-16 19:10:49 +08:00
|
|
|
|
enum class LogLevel
|
2019-08-19 19:19:58 +08:00
|
|
|
|
{
|
2023-01-16 19:10:49 +08:00
|
|
|
|
Error=0, //错误,肯定出对话框
|
|
|
|
|
Problem, //问题,默认出对话框
|
|
|
|
|
Hint, //提示,不重要,debug状态默认出对话框
|
|
|
|
|
Log //记录一下
|
|
|
|
|
};//enum class LogLevel
|
2022-06-14 17:57:57 +08:00
|
|
|
|
|
|
|
|
|
bool InitLogger(const OSString &app_name);
|
|
|
|
|
|
|
|
|
|
void Log(LogLevel level,const u16char *str,int size);
|
|
|
|
|
void Log(LogLevel level,const u8char *str,int size);
|
2019-08-19 19:19:58 +08:00
|
|
|
|
|
|
|
|
|
inline void Log(LogLevel ll,const UTF16String &str)
|
|
|
|
|
{
|
2022-06-14 17:57:57 +08:00
|
|
|
|
Log(ll,str.c_str(),str.Length());
|
2019-08-19 19:19:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline void Log(LogLevel ll,const UTF8String &str)
|
2020-07-07 19:14:42 +08:00
|
|
|
|
{
|
2022-06-14 17:57:57 +08:00
|
|
|
|
Log(ll,str.c_str(),str.Length());
|
2020-07-07 19:14:42 +08:00
|
|
|
|
}
|
|
|
|
|
|
2020-07-11 16:13:19 +08:00
|
|
|
|
#ifdef HGL_SUPPORT_CHAR8_T
|
|
|
|
|
inline void Log(LogLevel ll,const AnsiString &str)
|
|
|
|
|
{
|
|
|
|
|
std::cout<<str.c_str()<<std::endl;
|
|
|
|
|
}
|
|
|
|
|
#endif//HGL_SUPPORT_CHAR8_T
|
2020-07-10 19:07:31 +08:00
|
|
|
|
|
2019-08-19 19:19:58 +08:00
|
|
|
|
inline void DebugLog(LogLevel ll,const UTF16String &str,const char *filename,int line,const char *funcname)
|
|
|
|
|
{
|
2023-02-03 17:41:17 +08:00
|
|
|
|
Log(ll,str+U16_TEXT(">>LogFrom(\"")+to_u16((u8char *)filename)+U16_TEXT("\", ")+UTF16String::numberOf(line)+U16_TEXT(" line,func:\"")+to_u16((u8char *)funcname)+U16_TEXT("\")"));
|
2019-08-19 19:19:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline void DebugLog(LogLevel ll,const UTF8String &str,const char *filename,int line,const char *funcname)
|
|
|
|
|
{
|
2023-02-03 17:41:17 +08:00
|
|
|
|
Log(ll,str+U8_TEXT(">>LogFrom(\"")+UTF8String((u8char *)filename)+U8_TEXT("\", ")+UTF8String::numberOf(line)+U8_TEXT(" line,func:\"")+UTF8String((u8char *)funcname)+U8_TEXT("\")"));
|
2019-08-19 19:19:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-01-16 19:10:49 +08:00
|
|
|
|
#define LOG_INFO(str) {Log(LogLevel::Log, str);}
|
|
|
|
|
#define LOG_HINT(str) {Log(LogLevel::Hint, str);}
|
|
|
|
|
#define LOG_PROBLEM(str) {Log(LogLevel::Problem, str);}
|
|
|
|
|
#define LOG_ERROR(str) {Log(LogLevel::Error, str);}
|
2019-08-19 19:19:58 +08:00
|
|
|
|
|
2023-01-16 19:10:49 +08:00
|
|
|
|
#define RETURN_FALSE {DebugLog(LogLevel::Log,OS_TEXT("return(false)"), __FILE__,__LINE__,__HGL_FUNC__);return(false);}
|
2023-12-24 01:34:45 +08:00
|
|
|
|
#define RETURN_ERROR(v) {DebugLog(LogLevel::Log,OS_TEXT("return error(")+OSString::numberOf(v)+OS_TEXT(")"),__FILE__,__LINE__,__HGL_FUNC__);return(v);}
|
2023-01-16 19:10:49 +08:00
|
|
|
|
#define RETURN_ERROR_NULL {DebugLog(LogLevel::Log,OS_TEXT("return error(nullptr)"), __FILE__,__LINE__,__HGL_FUNC__);return(nullptr);}
|
2019-08-19 19:19:58 +08:00
|
|
|
|
|
|
|
|
|
#define RETURN_BOOL(proc) {if(proc)return(true);RETURN_FALSE}
|
|
|
|
|
|
|
|
|
|
#define IF_FALSE_RETURN(str) if(!str)RETURN_FALSE;
|
|
|
|
|
}//namespace logger
|
|
|
|
|
|
|
|
|
|
using namespace logger;
|
|
|
|
|
}//namespace hgl
|
|
|
|
|
#endif//HGL_LOGINFO_INCLUDE
|