summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorluwenpeng <[email protected]>2024-08-23 18:44:17 +0800
committerluwenpeng <[email protected]>2024-08-23 19:01:42 +0800
commit4e524a87815c74ac7ecc0514f6a0bea7ce53d20e (patch)
treeafcc3777e94a74e7378d46d4c93e5d84bc2ae830 /include
parent8db2e70c3824bce7a6109864ad9604111eed6634 (diff)
logger changes from global static variables to one instance per stellar
Diffstat (limited to 'include')
-rw-r--r--include/stellar/log.h62
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