Skip to content
Snippets Groups Projects
Commit 03e8e4a1 authored by Mark Spencer's avatar Mark Spencer
Browse files

Add "logger reload" CLI (bug #345)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 3b49a879
Branches
Tags
No related merge requests found
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <asterisk/channel.h> #include <asterisk/channel.h>
#include <asterisk/config.h> #include <asterisk/config.h>
#include <asterisk/term.h> #include <asterisk/term.h>
#include <asterisk/cli.h>
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <errno.h> #include <errno.h>
...@@ -173,22 +174,22 @@ static void init_logger_chain(void) ...@@ -173,22 +174,22 @@ static void init_logger_chain(void)
} }
static struct verb { int reload_logger(void)
void (*verboser)(const char *string, int opos, int replacelast, int complete);
struct verb *next;
} *verboser = NULL;
int init_logger(void)
{ {
char tmp[AST_CONFIG_MAX_PATH]; char tmp[AST_CONFIG_MAX_PATH];
ast_mutex_lock(&loglock);
if (eventlog)
fclose(eventlog);
mkdir((char *)ast_config_AST_LOG_DIR, 0755); mkdir((char *)ast_config_AST_LOG_DIR, 0755);
snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG); snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
eventlog = fopen((char *)tmp, "a"); eventlog = fopen((char *)tmp, "a");
ast_mutex_unlock(&loglock);
if (eventlog) { if (eventlog) {
init_logger_chain(); init_logger_chain();
ast_log(LOG_EVENT, "Started Asterisk Event Logger\n"); ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n");
if (option_verbose) if (option_verbose)
ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp); ast_verbose("Asterisk Event Logger restarted\n");
return 0; return 0;
} else } else
ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno)); ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
...@@ -196,22 +197,48 @@ int init_logger(void) ...@@ -196,22 +197,48 @@ int init_logger(void)
return -1; 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]; char tmp[AST_CONFIG_MAX_PATH];
ast_mutex_lock(&loglock);
if (eventlog) /* register the relaod logger cli command */
fclose(eventlog); ast_cli_register(&reload_logger_cli);
mkdir((char *)ast_config_AST_LOG_DIR, 0755); mkdir((char *)ast_config_AST_LOG_DIR, 0755);
snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG); snprintf(tmp, sizeof(tmp), "%s/%s", (char *)ast_config_AST_LOG_DIR, EVENTLOG);
eventlog = fopen((char *)tmp, "a"); eventlog = fopen((char *)tmp, "a");
ast_mutex_unlock(&loglock);
if (eventlog) { if (eventlog) {
init_logger_chain(); init_logger_chain();
ast_log(LOG_EVENT, "Restarted Asterisk Event Logger\n"); ast_log(LOG_EVENT, "Started Asterisk Event Logger\n");
if (option_verbose) if (option_verbose)
ast_verbose("Asterisk Event Logger restarted\n"); ast_verbose("Asterisk Event Logger Started %s\n",(char *)tmp);
return 0; return 0;
} else } else
ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno)); ast_log(LOG_ERROR, "Unable to create event log: %s\n", strerror(errno));
...@@ -219,6 +246,7 @@ int reload_logger(void) ...@@ -219,6 +246,7 @@ int reload_logger(void)
return -1; return -1;
} }
extern void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...) extern void ast_log(int level, const char *file, int line, const char *function, const char *fmt, ...)
{ {
char date[256]; char date[256];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment