include/sig/base/sig_log.h
typedef enum {
SIG_LOG_TRACE = 0,
SIG_LOG_DEBUG,
SIG_LOG_INFO,
SIG_LOG_WARN,
SIG_LOG_ERROR,
SIG_LOG_FATAL,
} sig_log_level_t;sig_status_t sig_log_init(FILE * fp, sig_log_level_t level)
| Parameter | Type |
|---|---|
fp | FILE * |
level | sig_log_level_t |
fp may be NULL to disable output while still tracking level. PRECONDITION: sig_log_init must be called before spawning any thread that will log, and sig_log_shutdown must only be called after every logging thread has been joined. Concurrent init/shutdown with logging threads results in undefined behavior.
void sig_log_shutdown()
fp may be NULL to disable output while still tracking level. PRECONDITION: sig_log_init must be called before spawning any thread that will log, and sig_log_shutdown must only be called after every logging thread has been joined. Concurrent init/shutdown with logging threads results in undefined behavior.
sig_status_t sig_log_level_from_string(const char * name, sig_log_level_t * out)
| Parameter | Type |
|---|---|
name | const char * |
out | sig_log_level_t * |
Parses a level name ("trace" .. "fatal", case-insensitive) into *out. Returns SIG_ERR_INVALID_ARG (leaving *out untouched) for NULL or an unknown name.
void sig_log_write(sig_log_level_t level, const char * file, int line, const char * fmt, ...)
| Parameter | Type |
|---|---|
level | sig_log_level_t |
file | const char * |
line | int |
fmt | const char * |
| ... |
Parses a level name ("trace" .. "fatal", case-insensitive) into *out. Returns SIG_ERR_INVALID_ARG (leaving *out untouched) for NULL or an unknown name.
#define sig_log_trace(...) sig_log_write(SIG_LOG_TRACE, __FILE__, __LINE__, __VA_ARGS__)
#define sig_log_debug(...) sig_log_write(SIG_LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
#define sig_log_info(...) sig_log_write(SIG_LOG_INFO, __FILE__, __LINE__, __VA_ARGS__)
#define sig_log_warn(...) sig_log_write(SIG_LOG_WARN, __FILE__, __LINE__, __VA_ARGS__)
#define sig_log_error(...) sig_log_write(SIG_LOG_ERROR, __FILE__, __LINE__, __VA_ARGS__)
#define sig_log_fatal(...) sig_log_write(SIG_LOG_FATAL, __FILE__, __LINE__, __VA_ARGS__)