|
|
|
@ -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];
|
|
|
|
|