]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Add "logger reload" CLI (bug #345)
authorMark Spencer <markster@digium.com>
Thu, 2 Oct 2003 06:40:10 +0000 (06:40 +0000)
committerMark Spencer <markster@digium.com>
Thu, 2 Oct 2003 06:40:10 +0000 (06:40 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1600 65c4cc65-6c06-0410-ace0-fbb531ad65f3

logger.c

index 36c76e6c5840010a1e970189a93295fa3b22bc10..7fa4dec3105b7319495b14141c8332fd0fa48c7c 100755 (executable)
--- a/logger.c
+++ b/logger.c
@@ -21,6 +21,7 @@
 #include <asterisk/channel.h>
 #include <asterisk/config.h>
 #include <asterisk/term.h>
+#include <asterisk/cli.h>
 #include <string.h>
 #include <stdlib.h>
 #include <errno.h>
@@ -173,22 +174,22 @@ static void init_logger_chain(void)
 
 }
 
-static struct verb {
-       void (*verboser)(const char *string, int opos, int replacelast, int complete);
-       struct verb *next;
-} *verboser = NULL;
-
-int init_logger(void)
+int reload_logger(void)
 {
        char tmp[AST_CONFIG_MAX_PATH];
+       ast_mutex_lock(&loglock);
+       if (eventlog)
+               fclose(eventlog);
        mkdir((char *)ast_config_AST_LOG_DIR, 0755);
        snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
        eventlog = fopen((char *)tmp, "a");
+       ast_mutex_unlock(&loglock);
+
        if (eventlog) {
                init_logger_chain();
-               ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
+               ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
                if (option_verbose)
-                       ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
+                       ast_verbose("Asterisk Event Logger restarted\n");
                return 0;
        } else 
                ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
@@ -196,22 +197,48 @@ int init_logger(void)
        return -1;
 }
 
-int reload_logger(void)
+static int handle_logger_reload(int fd, int argc, char *argv[])
+{
+       if(reload_logger())
+       {
+               ast_cli(fd, "Failed to reloadthe logger\n");
+               return RESULT_FAILURE;
+       }
+       else
+               return RESULT_SUCCESS;
+}
+
+static struct verb {
+       void (*verboser)(const char *string, int opos, int replacelast, int complete);
+       struct verb *next;
+} *verboser = NULL;
+
+
+static char logger_reload_help[] =
+"Usage: logger reload\n"
+"       Reopens the log files.  Use after a rotating the log files\n";
+
+static struct ast_cli_entry reload_logger_cli = 
+       { { "logger", "reload", NULL }, 
+       handle_logger_reload, "Reopens the log files",
+       logger_reload_help };
+
+
+int init_logger(void)
 {
        char tmp[AST_CONFIG_MAX_PATH];
-       ast_mutex_lock(&loglock);
-       if (eventlog)
-               fclose(eventlog);
+
+       /* register the relaod logger cli command */
+       ast_cli_register(&reload_logger_cli);
+       
        mkdir((char *)ast_config_AST_LOG_DIR, 0755);
        snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
        eventlog = fopen((char *)tmp, "a");
-       ast_mutex_unlock(&loglock);
-
        if (eventlog) {
                init_logger_chain();
-               ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
+               ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
                if (option_verbose)
-                       ast_verbose("Asterisk Event Logger restarted\n");
+                       ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
                return 0;
        } else 
                ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
@@ -219,6 +246,7 @@ int reload_logger(void)
        return -1;
 }
 
+
 extern void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...)
 {
        char date[256];