GrabBag/VrUtils/Inc/VrLog.h

83 lines
2.5 KiB
C
Raw Normal View History

2025-07-23 01:35:14 +08:00
#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__)
2025-09-10 00:31:27 +08:00
#define LOG_WARN(...) VrLogUtils::EchoLog(KELOGLEVEL_Warning, logfilename(__FILE__), __LINE__, "APPW", ##__VA_ARGS__)
2025-07-23 01:35:14 +08:00
#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();
2025-09-29 00:56:53 +08:00
/// 开启/关闭时间戳
VR_UTILS_API void EnableTime(bool bEnable);
2025-07-23 01:35:14 +08:00
/// 输出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