feat upate
All checks were successful
linux-x64-gcc / linux-gcc (Debug) (push) Successful in 1m34s
linux-x64-gcc / linux-gcc (Release) (push) Successful in 1m35s

This commit is contained in:
tqcq 2024-03-18 17:06:50 +08:00
parent 2dd0ce8964
commit ee34bdb1c8

View File

@ -13,91 +13,67 @@
namespace sled { namespace sled {
enum class LogLevel { enum class LogLevel {
kTrace, kTrace = 0,
kDebug, kDebug = 1,
kInfo, kInfo = 2,
kWarning, kWarning = 3,
kError, kError = 4,
kFatal, kFatal = 5,
}; };
void SetLogLevel(LogLevel level); void SetLogLevel(LogLevel level);
void Log(LogLevel level, void Log(LogLevel level, const char *tag, const char *fmt, const char *file_name, int line, const char *func_name, ...);
const char *tag,
const char *fmt,
const char *file_name,
int line,
const char *func_name,
...);
}// namespace sled }// namespace sled
// #define _SLOG(level, tag, ...) \ // #define _SLOG(level, tag, ...) \
// sled::Log(level, tag, fmt, __FILE__, __FUNCTION__, __VA_ARGS__) // sled::Log(level, tag, fmt, __FILE__, __FUNCTION__, __VA_ARGS__)
#define _SLOG(level, tag, fmt_str, ...) \ #define _SLOG(level, tag, fmt_str, ...) \
do { \ do { \
std::string __fmt_str; \ std::string __fmt_str; \
try { \ try { \
__fmt_str = fmt::format(fmt_str, ##__VA_ARGS__); \ __fmt_str = fmt::format(fmt_str, ##__VA_ARGS__); \
} catch (const std::exception &e) { \ } catch (const std::exception &e) { \
__fmt_str = " fmt error: " + std::string(e.what()); \ __fmt_str = " fmt error: " + std::string(e.what()); \
} \ } \
sled::Log(level, tag, __fmt_str.c_str(), __FILE__, __LINE__, \ sled::Log(level, tag, __fmt_str.c_str(), __FILE__, __LINE__, __FUNCTION__); \
__FUNCTION__); \
} while (0) } while (0)
#define SLOG(level, tag, fmt, ...) _SLOG(level, tag, fmt, ##__VA_ARGS__) #define SLOG(level, tag, fmt, ...) _SLOG(level, tag, fmt, ##__VA_ARGS__)
#define SLOG_TRACE(tag, fmt, ...) \ #define SLOG_TRACE(tag, fmt, ...) SLOG(sled::LogLevel::kTrace, tag, fmt, __VA_ARGS__)
SLOG(sled::LogLevel::kTrace, tag, fmt, __VA_ARGS__) #define SLOG_INFO(tag, fmt, ...) SLOG(sled::LogLevel::kInfo, tag, fmt, __VA_ARGS__)
#define SLOG_INFO(tag, fmt, ...) \ #define SLOG_DEBUG(tag, fmt, ...) SLOG(sled::LogLevel::kDebug, tag, fmt, __VA_ARGS__)
SLOG(sled::LogLevel::kInfo, tag, fmt, __VA_ARGS__) #define SLOG_WARNING(tag, fmt, ...) SLOG(sled::LogLevel::kWarning, tag, fmt, __VA_ARGS__)
#define SLOG_DEBUG(tag, fmt, ...) \ #define SLOG_ERROR(tag, fmt, ...) SLOG(sled::LogLevel::kError, tag, fmt, __VA_ARGS__)
SLOG(sled::LogLevel::kDebug, tag, fmt, __VA_ARGS__) #define SLOG_FATAL(tag, fmt, ...) SLOG(sled::LogLevel::kFatal, tag, fmt, __VA_ARGS__)
#define SLOG_WARNING(tag, fmt, ...) \
SLOG(sled::LogLevel::kWarning, tag, fmt, __VA_ARGS__)
#define SLOG_ERROR(tag, fmt, ...) \
SLOG(sled::LogLevel::kError, tag, fmt, __VA_ARGS__)
#define SLOG_FATAL(tag, fmt, ...) \
SLOG(sled::LogLevel::kFatal, tag, fmt, __VA_ARGS__)
#define SLOG_IF(cond, level, tag, fmt, ...) \ #define SLOG_IF(cond, level, tag, fmt, ...) \
do { \ do { \
if (cond) { SLOG(level, tag, fmt, __VA_ARGS__); } \ if (cond) { SLOG(level, tag, fmt, __VA_ARGS__); } \
} while (0) } while (0)
#define SLOG_ASSERT(cond, tag, fmt, ...) \ #define SLOG_ASSERT(cond, tag, fmt, ...) \
do { \ do { \
if (!(cond)) { \ if (!(cond)) { \
SLOG(sled::LogLevel::kFatal, tag, fmt, ##__VA_ARGS__); \ SLOG(sled::LogLevel::kFatal, tag, fmt, ##__VA_ARGS__); \
assert(cond); \ assert(cond); \
} \ } \
} while (0) } while (0)
#define LOGV_IF(cond, tag, fmt, ...) \ #define LOGV_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kTrace, tag, fmt, __VA_ARGS__)
SLOG_IF(cond, sled::LogLevel::kTrace, tag, fmt, __VA_ARGS__) #define LOGD_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kDebug, tag, fmt, __VA_ARGS__)
#define LOGD_IF(cond, tag, fmt, ...) \ #define LOGI_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kInfo, tag, fmt, __VA_ARGS__)
SLOG_IF(cond, sled::LogLevel::kDebug, tag, fmt, __VA_ARGS__) #define LOGW_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kWarning, tag, fmt, __VA_ARGS__)
#define LOGI_IF(cond, tag, fmt, ...) \ #define LOGE_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kError, tag, fmt, __VA_ARGS__)
SLOG_IF(cond, sled::LogLevel::kInfo, tag, fmt, __VA_ARGS__) #define LOGF_IF(cond, tag, fmt, ...) SLOG_IF(cond, sled::LogLevel::kFatal, tag, fmt, __VA_ARGS__)
#define LOGW_IF(cond, tag, fmt, ...) \
SLOG_IF(cond, sled::LogLevel::kWarning, tag, fmt, __VA_ARGS__)
#define LOGE_IF(cond, tag, fmt, ...) \
SLOG_IF(cond, sled::LogLevel::kError, tag, fmt, __VA_ARGS__)
#define LOGF_IF(cond, tag, fmt, ...) \
SLOG_IF(cond, sled::LogLevel::kFatal, tag, fmt, __VA_ARGS__)
#define LOGV(tag, fmt, ...) \ #define LOGV(tag, fmt, ...) SLOG(sled::LogLevel::kTrace, tag, fmt, ##__VA_ARGS__)
SLOG(sled::LogLevel::kTrace, tag, fmt, ##__VA_ARGS__) #define LOGD(tag, fmt, ...) SLOG(sled::LogLevel::kDebug, tag, fmt, ##__VA_ARGS__)
#define LOGD(tag, fmt, ...) \
SLOG(sled::LogLevel::kDebug, tag, fmt, ##__VA_ARGS__)
#define LOGI(tag, fmt, ...) SLOG(sled::LogLevel::kInfo, tag, fmt, ##__VA_ARGS__) #define LOGI(tag, fmt, ...) SLOG(sled::LogLevel::kInfo, tag, fmt, ##__VA_ARGS__)
#define LOGW(tag, fmt, ...) \ #define LOGW(tag, fmt, ...) SLOG(sled::LogLevel::kWarning, tag, fmt, ##__VA_ARGS__)
SLOG(sled::LogLevel::kWarning, tag, fmt, ##__VA_ARGS__) #define LOGE(tag, fmt, ...) SLOG(sled::LogLevel::kError, tag, fmt, ##__VA_ARGS__)
#define LOGE(tag, fmt, ...) \ #define LOGF(tag, fmt, ...) SLOG(sled::LogLevel::kFatal, tag, fmt, ##__VA_ARGS__)
SLOG(sled::LogLevel::kError, tag, fmt, ##__VA_ARGS__)
#define LOGF(tag, fmt, ...) \
SLOG(sled::LogLevel::kFatal, tag, fmt, ##__VA_ARGS__)
#define ASSERT(cond, fmt, ...) SLOG_ASSERT(cond, "ASSERT", fmt, ##__VA_ARGS__) #define ASSERT(cond, fmt, ...) SLOG_ASSERT(cond, "ASSERT", fmt, ##__VA_ARGS__)