diff options
| author | luwenpeng <[email protected]> | 2024-08-23 18:44:17 +0800 |
|---|---|---|
| committer | luwenpeng <[email protected]> | 2024-08-23 19:01:42 +0800 |
| commit | 4e524a87815c74ac7ecc0514f6a0bea7ce53d20e (patch) | |
| tree | afcc3777e94a74e7378d46d4c93e5d84bc2ae830 /include | |
| parent | 8db2e70c3824bce7a6109864ad9604111eed6634 (diff) | |
logger changes from global static variables to one instance per stellar
Diffstat (limited to 'include')
| -rw-r--r-- | include/stellar/log.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/include/stellar/log.h b/include/stellar/log.h new file mode 100644 index 0000000..3107fa2 --- /dev/null +++ b/include/stellar/log.h @@ -0,0 +1,62 @@ +#pragma once + +#ifdef __cplusplus +extern "C" +{ +#endif + +enum log_level +{ + LOG_TRACE, + LOG_DEBUG, + LOG_INFO, + LOG_WARN, + LOG_ERROR, + LOG_FATAL, +}; + +#define STELLAR_LOG_TRACE(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_TRACE)) \ + { \ + log_print((logger), LOG_TRACE, (module), (format), ##__VA_ARGS__); \ + } + +#define STELLAR_LOG_DEBUG(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_DEBUG)) \ + { \ + log_print((logger), LOG_DEBUG, (module), (format), ##__VA_ARGS__); \ + } + +#define STELLAR_LOG_INFO(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_INFO)) \ + { \ + log_print((logger), LOG_INFO, (module), (format), ##__VA_ARGS__); \ + } + +#define STELLAR_LOG_WARN(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_WARN)) \ + { \ + log_print((logger), LOG_WARN, (module), (format), ##__VA_ARGS__); \ + } + +#define STELLAR_LOG_ERROR(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_ERROR)) \ + { \ + log_print((logger), LOG_ERROR, (module), (format), ##__VA_ARGS__); \ + } + +#define STELLAR_LOG_FATAL(logger, module, format, ...) \ + if ((logger) && log_level_check((logger), LOG_FATAL)) \ + { \ + log_print((logger), LOG_FATAL, (module), (format), ##__VA_ARGS__); \ + } + +struct logger; +struct logger *stellar_get_logger(struct stellar *st); + +int log_level_check(struct logger *logger, enum log_level level); +void log_print(struct logger *logger, enum log_level level, const char *module, const char *fmt, ...); + +#ifdef __cplusplus +} +#endif |
