2025-06-08 12:48:04 +08:00
|
|
|
|
#ifndef __VR_LOG__H_
|
|
|
|
|
|
#define __VR_LOG__H_
|
|
|
|
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
#include <chrono>
|
2025-06-17 00:37:05 +08:00
|
|
|
|
#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
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-06-17 00:37:05 +08:00
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
|
#pragma comment(lib, "advapi32.lib")
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2025-06-26 00:40:36 +08:00
|
|
|
|
#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__)
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
/// @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
|
2025-06-17 00:37:05 +08:00
|
|
|
|
VR_UTILS_API void InitLog();
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
/// 关闭log
|
2025-06-17 00:37:05 +08:00
|
|
|
|
VR_UTILS_API void UninitLog();
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
/// 输出log
|
2025-06-17 00:37:05 +08:00
|
|
|
|
VR_UTILS_API void EchoLog(VrLogLevel eLogLevel, const char* sFilePath, const int nLine, const char* sLogGroup, const char* sFormat, ...);
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
/// 修改log level default info
|
2025-06-17 00:37:05 +08:00
|
|
|
|
VR_UTILS_API void AlterLogLevel(VrLogLevel eLogLevel);
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
/// 修改log输出形式 默认都输出
|
2025-06-17 00:37:05 +08:00
|
|
|
|
VR_UTILS_API void AlterLogType(VrLogType eLogType);
|
2025-06-08 12:48:04 +08:00
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|