From ed7f64d7480a53517befe11d8335718e29cd7345 Mon Sep 17 00:00:00 2001 From: Minggui Cao Date: Fri, 31 May 2019 09:31:48 +0800 Subject: [PATCH] DM: add deinit API for loggers when DM exit, it is better to call deinit_loggers to do some cleanup work. Tracked-On: #3012 Signed-off-by: Minggui Cao Reviewed-by: Yin Fengwei --- devicemodel/core/main.c | 1 + devicemodel/include/log.h | 1 + devicemodel/log/log.c | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/devicemodel/core/main.c b/devicemodel/core/main.c index 90629f54f..64b332ea1 100644 --- a/devicemodel/core/main.c +++ b/devicemodel/core/main.c @@ -1073,5 +1073,6 @@ fail: vm_destroy(ctx); create_fail: uninit_hugetlb(); + deinit_loggers(); exit(ret); } diff --git a/devicemodel/include/log.h b/devicemodel/include/log.h index 056d07020..1c102bcab 100644 --- a/devicemodel/include/log.h +++ b/devicemodel/include/log.h @@ -29,6 +29,7 @@ struct logger_ops { }; int init_logger_setting(const char *opt); +void deinit_loggers(void); void output_log(uint8_t level, const char *fmt, ...); /* diff --git a/devicemodel/log/log.c b/devicemodel/log/log.c index 83ef222b1..be083e1e6 100644 --- a/devicemodel/log/log.c +++ b/devicemodel/log/log.c @@ -74,6 +74,17 @@ int init_logger_setting(const char *opt) return error; } +void deinit_loggers(void) +{ + struct logger_ops **pp_logger, *plogger; + + FOR_EACH_LOGGER(pp_logger) { + plogger = *pp_logger; + if (plogger->deinit) + plogger->deinit(); + } +} + void output_log(uint8_t level, const char *fmt, ...) { va_list args;