35#define LOG_VERSION "0.1.0"
37#define MAX_CALLBACKS 32
122 const char *bname = strrchr(path,
'/');
123 return (bname !=
NULL) ? bname + 1 : path;
127#define log_trace(...) log_log(LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__)
130#define log_debug(...) log_log(LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
133#define log_info(...) log_log(LOG_INFO, __FILE__, __LINE__, __VA_ARGS__)
136#define log_warn(...) log_log(LOG_WARN, __FILE__, __LINE__, __VA_ARGS__)
139#define log_error(...) log_log(LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__)
142#define log_fatal(...) \
144 log_log(LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__); \
149#define log_assert(condition, ...) \
151 if (!(condition)) { \
152 log_log(LOG_ASSERT_0, __FILE__, __LINE__, _red(#condition) " " __VA_ARGS__); \
155 log_log(LOG_ASSERT_1, __FILE__, __LINE__, _green(#condition) " " __VA_ARGS__); \
236void log_log(
int level,
const char *file,
int line,
const char *fmt, ...);
#define NULL
Definition list.h:22
const char * log_level_string(int level)
获取日志级别的字符串
Definition log.c:90
void log_set_lock(log_LockFn fn, void *udata)
设置日志锁
Definition log.c:95
static const char * filename_from_path(const char *path)
获得文件路径内的文件名
Definition log.h:121
Callback callbacks[MAX_CALLBACKS]
Definition log.h:107
int log_add_callback(log_LogFn fn, void *udata, int level)
添加日志回调
Definition log.c:111
void(* log_LogFn)(log_Event *ev)
日志回调函数
Definition log.h:64
void log_set_quiet(bool enable)
设置日志是否静默
Definition log.c:106
static struct @2 L
日志库全局变量结构体
log_LockFn lock
Definition log.h:104
void log_log(int level, const char *file, int line, const char *fmt,...)
日志输出
Definition log.c:139
int level
Definition log.h:105
bool quiet
Definition log.h:106
#define MAX_CALLBACKS
Definition log.h:37
log_Level
日志级别枚举类
Definition log.h:77
@ LOG_ERROR
Definition log.h:82
@ LOG_ASSERT_0
Definition log.h:85
@ LOG_INFO
Definition log.h:80
@ LOG_DEBUG
Definition log.h:79
@ LOG_FATAL
Definition log.h:83
@ LOG_WARN
Definition log.h:81
@ LOG_ASSERT_1
Definition log.h:84
void(* log_LockFn)(bool lock, void *udata)
日志锁回调函数
Definition log.h:71
void log_set_level(int level)
设置日志级别
Definition log.c:101
int log_add_fp(FILE *fp, int level)
添加日志文件和级别
Definition log.c:124
日志回调结构体
Definition log.h:91
log_LogFn fn
Definition log.h:92
void * udata
Definition log.h:93
int level
Definition log.h:94
日志事件结构体
Definition log.h:50
const char * fmt
Definition log.h:52
int level
Definition log.h:57
void * udata
Definition log.h:55
struct tm * time
Definition log.h:54
const char * file
Definition log.h:53
va_list ap
Definition log.h:51
int line
Definition log.h:56