aboutsummaryrefslogtreecommitdiffstats
path: root/logger.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-10-02 06:40:10 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-10-02 06:40:10 +0000
commitf6a8a9aa6a9fa6b6e6f160b5ab2e27122f6b1127 (patch)
tree700e740e240bd991e22751fa6da01497bf63ba1b /logger.c
parent05be3214f5316c5949170b6cff5d419875348dba (diff)
Add "logger reload" CLI (bug #345)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1600 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'logger.c')
-rwxr-xr-xlogger.c60
1 files changed, 44 insertions, 16 deletions
diff --git a/logger.c b/logger.c
index 36c76e6c5..7fa4dec31 100755
--- 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];