#ifndef UMBRELLA_LOG_H #define UMBRELLA_LOG_H #include typedef enum { LOG_DEBUG = 0, LOG_INFO = 1, LOG_WARN = 2, LOG_ERROR = 3, } LogLevel; void log_init(const char *path, LogLevel min_level); void log_close(void); void log_write(LogLevel level, const char *fmt, ...); #define log_debug(...) log_write(LOG_DEBUG, __VA_ARGS__) #define log_info(...) log_write(LOG_INFO, __VA_ARGS__) #define log_warn(...) log_write(LOG_WARN, __VA_ARGS__) #define log_error(...) log_write(LOG_ERROR, __VA_ARGS__) #endif /* UMBRELLA_LOG_H */