diff --git a/configs/logger.conf.sample b/configs/logger.conf.sample index 66f0613ac4..ed48ed627b 100755 --- a/configs/logger.conf.sample +++ b/configs/logger.conf.sample @@ -3,6 +3,13 @@ ; ; In this file, you configure logging to files or to ; the syslog system. + +[general] +; Customize the display of debug message time stamps +; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS) +; see strftime(3) Linux manual for format specifiers +;dateformat=%F %T + ; ; For each file, specify what to log. ; diff --git a/logger.c b/logger.c index fa73477ea1..331ca669f2 100755 --- a/logger.c +++ b/logger.c @@ -48,6 +48,7 @@ static int syslog_level_map[] = { #define MAX_MSG_QUEUE 200 +static char dateformat[256] = "%b %e %T"; /* Original Asterisk Format */ static ast_mutex_t msglist_lock = AST_MUTEX_INITIALIZER; static ast_mutex_t loglock = AST_MUTEX_INITIALIZER; static int pending_logger_reload = 0; @@ -186,6 +187,7 @@ static void init_logger_chain(void) struct logchannel *chan, *cur; struct ast_config *cfg; struct ast_variable *var; + char *s; /* delete our list of log channels */ ast_mutex_lock(&loglock); @@ -208,6 +210,9 @@ static void init_logger_chain(void) return; ast_mutex_lock(&loglock); + if ((s = ast_variable_retrieve(cfg, "general", "dateformat"))) { + (void)strncpy(dateformat,s,sizeof(dateformat)); + } var = ast_variable_browse(cfg, "logfiles"); while(var) { chan = make_logchannel(var->name, var->value, var->lineno); @@ -466,7 +471,7 @@ void ast_log(int level, const char *file, int line, const char *function, const time(&t); localtime_r(&t, &tm); - strftime(date, sizeof(date), "%b %e %T", &tm); + strftime(date, sizeof(date), dateformat, &tm); if (level == __LOG_EVENT) {