diff options
| author | dec05eba <dec05eba@protonmail.com> | 2026-08-01 18:51:59 +0200 |
|---|---|---|
| committer | dec05eba <dec05eba@protonmail.com> | 2026-08-01 18:51:59 +0200 |
| commit | c150d0e6ba0ab1f9ecd6a1c933a58050187e0c81 (patch) | |
| tree | 3cae92f93009e87aeb2487afce569d6a20a8586c /include | |
| parent | 9c2c0e1d0de9b3968415b08830a45f64091d3b98 (diff) | |
Add gsr_log logging module with log level and overridable log handler
Diffstat (limited to 'include')
| -rw-r--r-- | include/log.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/include/log.h b/include/log.h new file mode 100644 index 0000000..71be585 --- /dev/null +++ b/include/log.h @@ -0,0 +1,28 @@ +#ifndef GSR_LOG_H +#define GSR_LOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + GSR_LOG_LEVEL_DEBUG, + GSR_LOG_LEVEL_INFO, + GSR_LOG_LEVEL_WARNING, + GSR_LOG_LEVEL_ERROR +} gsr_log_level; + +/* The handler may be called from any thread. |message| has no prefix, level name or trailing newline */ +typedef void (*gsr_log_handler)(gsr_log_level level, const char *message, void *userdata); + +void gsr_log(gsr_log_level level, const char *fmt, ...) __attribute__((format(printf, 2, 3))); +/* Messages below |level| are discarded */ +void gsr_log_set_level(gsr_log_level level); +/* A NULL |handler| restores the default handler which prints "gsr <level>: <message>" to stderr */ +void gsr_log_set_handler(gsr_log_handler handler, void *userdata); + +#ifdef __cplusplus +} +#endif + +#endif /* GSR_LOG_H */ |
