diff --git a/include/stellar/log.h b/include/stellar/log.h index 3107fa2..d77fdd0 100644 --- a/include/stellar/log.h +++ b/include/stellar/log.h @@ -16,37 +16,37 @@ enum log_level }; #define STELLAR_LOG_TRACE(logger, module, format, ...) \ - if ((logger) && log_level_check((logger), LOG_TRACE)) \ + if (log_check_level((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)) \ + if (log_check_level((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)) \ + if (log_check_level((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)) \ + if (log_check_level((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)) \ + if (log_check_level((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)) \ + if (log_check_level((logger), LOG_FATAL)) \ { \ log_print((logger), LOG_FATAL, (module), (format), ##__VA_ARGS__); \ } @@ -54,7 +54,7 @@ enum log_level struct logger; struct logger *stellar_get_logger(struct stellar *st); -int log_level_check(struct logger *logger, enum log_level level); +int log_check_level(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 diff --git a/src/core/main.cpp b/src/core/main.cpp index bac5fff..1e5fb81 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -2,33 +2,36 @@ #include #include +#include "stellar/log.h" #include "stellar/stellar.h" #include "stellar_core.h" struct stellar *st = NULL; static void signal_handler(int signo) { + struct logger *logger = stellar_get_logger(st); + if (signo == SIGINT) { - printf("SIGINT received, notify threads to exit\n"); + STELLAR_LOG_FATAL(logger, "signal", "SIGINT received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGQUIT) { - printf("SIGQUIT received, notify threads to exit\n"); + STELLAR_LOG_FATAL(logger, "signal", "SIGQUIT received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGTERM) { - printf("SIGTERM received, notify threads to exit\n"); + STELLAR_LOG_FATAL(logger, "signal", "SIGTERM received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGHUP) { - printf("SIGHUP received, reload log level\n"); + STELLAR_LOG_FATAL(logger, "signal", "SIGHUP received, reload log level"); stellar_reload_log_level(st); } } diff --git a/src/core/stellar_core.cpp b/src/core/stellar_core.cpp index 9730b2e..9e4da76 100644 --- a/src/core/stellar_core.cpp +++ b/src/core/stellar_core.cpp @@ -650,7 +650,7 @@ void stellar_reload_log_level(struct stellar *st) { if (st) { - log_level_reload(st->runtime.logger); + log_reload_level(st->runtime.logger); } } diff --git a/src/log/log.cpp b/src/log/log.cpp index 1773197..d627f35 100644 --- a/src/log/log.cpp +++ b/src/log/log.cpp @@ -276,12 +276,19 @@ void log_free(struct logger *logger) } } -int log_level_check(struct logger *logger, enum log_level level) +int log_check_level(struct logger *logger, enum log_level level) { - return level >= logger->config.level; + if (logger) + { + return level >= logger->config.level; + } + else + { + return 0; + } } -void log_level_reload(struct logger *logger) +void log_reload_level(struct logger *logger) { struct log_config config = {}; if (config_parse(&config, logger->config_file) == 0) diff --git a/src/log/log_private.h b/src/log/log_private.h index d77266e..dd18040 100644 --- a/src/log/log_private.h +++ b/src/log/log_private.h @@ -11,7 +11,7 @@ extern thread_local struct logger *__thread_local_logger; struct logger *log_new(const char *config_file); void log_free(struct logger *logger); -void log_level_reload(struct logger *logger); +void log_reload_level(struct logger *logger); #ifdef __cplusplus } diff --git a/src/log/test/gtest_log.cpp b/src/log/test/gtest_log.cpp index 31118b8..2183109 100644 --- a/src/log/test/gtest_log.cpp +++ b/src/log/test/gtest_log.cpp @@ -19,7 +19,7 @@ TEST(LOG, STDERR) STELLAR_LOG_FATAL(logger, "test", "test log 1"); system(buffer); - log_level_reload(logger); + log_reload_level(logger); STELLAR_LOG_TRACE(logger, "test", "test log 2"); STELLAR_LOG_DEBUG(logger, "test", "test log 2"); @@ -49,7 +49,7 @@ TEST(LOG, FILE) STELLAR_LOG_FATAL(logger, "test", "test log 1"); system(buffer); - log_level_reload(logger); + log_reload_level(logger); STELLAR_LOG_TRACE(logger, "test", "test log 2"); STELLAR_LOG_DEBUG(logger, "test", "test log 2");