diff options
-rw-r--r-- | include/asterisk/logger.h | 3 | ||||
-rw-r--r-- | main/loader.c | 1 | ||||
-rw-r--r-- | main/logger.c | 20 |
3 files changed, 18 insertions, 6 deletions
diff --git a/include/asterisk/logger.h b/include/asterisk/logger.h index 63b3cdbb0..58bf1804b 100644 --- a/include/asterisk/logger.h +++ b/include/asterisk/logger.h @@ -64,6 +64,9 @@ void ast_log(int level, const char *file, int line, const char *function, const void ast_backtrace(void); +/*! \brief Reload logger without rotating log files */ +int logger_reload(void); + void ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...) __attribute__ ((format (printf, 5, 6))); diff --git a/main/loader.c b/main/loader.c index 6522f01bf..aa17fcb31 100644 --- a/main/loader.c +++ b/main/loader.c @@ -239,6 +239,7 @@ static struct reload_classes { { "manager", reload_manager }, { "rtp", ast_rtp_reload }, { "http", ast_http_reload }, + { "logger", logger_reload }, { NULL, NULL } }; diff --git a/main/logger.c b/main/logger.c index 50d8ca1ab..79ff8deaf 100644 --- a/main/logger.c +++ b/main/logger.c @@ -483,13 +483,21 @@ int reload_logger(int rotate) return res; } +/*! \brief Reload the logger module without rotating log files (also used from loader.c during + a full Asterisk reload) */ +int logger_reload(void) +{ + if(reload_logger(0)) + return RESULT_FAILURE; + return RESULT_SUCCESS; +} + static int handle_logger_reload(int fd, int argc, char *argv[]) { - if(reload_logger(0)) { + int result = logger_reload(); + if (result == RESULT_FAILURE) ast_cli(fd, "Failed to reload the logger\n"); - return RESULT_FAILURE; - } else - return RESULT_SUCCESS; + return result; } static int handle_logger_rotate(int fd, int argc, char *argv[]) @@ -497,8 +505,8 @@ static int handle_logger_rotate(int fd, int argc, char *argv[]) if(reload_logger(1)) { ast_cli(fd, "Failed to reload the logger and rotate log files\n"); return RESULT_FAILURE; - } else - return RESULT_SUCCESS; + } + return RESULT_SUCCESS; } /*! \brief CLI command to show logging system configuration */ |