79 lines
2.3 KiB
C++
79 lines
2.3 KiB
C++
#ifndef __VR_LOG__H_
|
||
#define __VR_LOG__H_
|
||
|
||
#include <stdio.h>
|
||
#include <chrono>
|
||
#ifdef _WIN32
|
||
#define VR_UTILS_API
|
||
#else
|
||
// Linux/Unixƽ̨
|
||
#ifdef VR_UTILS_EXPORTS
|
||
#define VR_UTILS_API __attribute__((visibility("default")))
|
||
#else
|
||
#define VR_UTILS_API __attribute__((visibility("default")))
|
||
#endif
|
||
#endif
|
||
|
||
#ifdef _WIN32
|
||
// windows:
|
||
#define logfilename(x) strrchr(x,'\\')?strrchr(x,'\\')+1:x
|
||
#else
|
||
// linux:
|
||
#define logfilename(x) strrchr(x,'/')?strrchr(x,'/')+1:x
|
||
#endif // _WIN32
|
||
|
||
|
||
#ifdef _WIN32
|
||
#pragma comment(lib, "advapi32.lib")
|
||
#endif
|
||
|
||
#define LOG_VERBOSE(...) VrLogUtils::EchoLog(KELOGLEVEL_Verbose, logfilename(__FILE__), __LINE__, "APPV", ##__VA_ARGS__)
|
||
#define LOG_DEBUG(...) VrLogUtils::EchoLog(KELOGLEVEL_Debug, logfilename(__FILE__), __LINE__, "APPD", ##__VA_ARGS__)
|
||
#define LOG_INFO(...) VrLogUtils::EchoLog(KELOGLEVEL_Info, logfilename(__FILE__), __LINE__, "APPI", ##__VA_ARGS__)
|
||
#define LOG_WARNING(...) VrLogUtils::EchoLog(KELOGLEVEL_Warning, logfilename(__FILE__), __LINE__, "APPW", ##__VA_ARGS__)
|
||
#define LOG_ERROR(...) VrLogUtils::EchoLog(KELOGLEVEL_Error, logfilename(__FILE__), __LINE__, "APPE", ##__VA_ARGS__)
|
||
#define LOG_ERRO(...) VrLogUtils::EchoLog(KELOGLEVEL_Error, logfilename(__FILE__), __LINE__, "APPE", ##__VA_ARGS__)
|
||
#define LOG_ERR(...) VrLogUtils::EchoLog(KELOGLEVEL_Error, logfilename(__FILE__), __LINE__, "APPE", ##__VA_ARGS__)
|
||
|
||
/// @brief
|
||
/// 日志等级
|
||
enum VrLogLevel
|
||
{
|
||
KELOGLEVEL_None = 0,
|
||
KELOGLEVEL_Verbose = 1,
|
||
KELOGLEVEL_Debug,
|
||
KELOGLEVEL_Info,
|
||
KELOGLEVEL_Warning,
|
||
KELOGLEVEL_Error,
|
||
};
|
||
|
||
enum VrLogType
|
||
{
|
||
KELOGTYPE_None = 0,
|
||
KELOGTYPE_Console = 1,
|
||
KELOGTYPE_Log4Cpp = 1 << 1,
|
||
KELOGTYPE_All = 0xff,
|
||
};
|
||
|
||
namespace VrLogUtils
|
||
{
|
||
/// 初始化log
|
||
VR_UTILS_API void InitLog();
|
||
|
||
/// 关闭log
|
||
VR_UTILS_API void UninitLog();
|
||
|
||
/// 输出log
|
||
VR_UTILS_API void EchoLog(VrLogLevel eLogLevel, const char* sFilePath, const int nLine, const char* sLogGroup, const char* sFormat, ...);
|
||
|
||
/// 修改log level default info
|
||
VR_UTILS_API void AlterLogLevel(VrLogLevel eLogLevel);
|
||
|
||
/// 修改log输出形式 默认都输出
|
||
VR_UTILS_API void AlterLogType(VrLogType eLogType);
|
||
|
||
};
|
||
|
||
#endif
|
||
|