diff --git a/CHANGES b/CHANGES index 6e78fb02d5fee936f3c783114b269aee283bb575..2cc6145ecb0889f4bd6b7b3b87d5745add377f79 100644 --- a/CHANGES +++ b/CHANGES @@ -67,6 +67,9 @@ Logging individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at least one member of any queue exists for that interface. + * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT + for realtime queue log entries. + Queue ------------------- * Add queue available hint. exten => 8501,hint,Queue:markq_avail diff --git a/configs/logger.conf.sample b/configs/logger.conf.sample index 406d6d8202cb36382225270348a5f1dc8ca78bf5..173fce9a38596f2ae30d29b01ed20c4eeab63f75 100644 --- a/configs/logger.conf.sample +++ b/configs/logger.conf.sample @@ -39,6 +39,10 @@ ; (defaults to queue_log) ;queue_log_name = queue_log ; +; When using realtime for the queue log, use GMT for the timestamp +; instead of localtime. The default of this option is 'no'. +;queue_log_realtime_use_gmt = yes +; ; Log rotation strategy: ; none: Do not perform any logrotation at all. You should make ; very sure to set up some external logrotate mechanism diff --git a/main/logger.c b/main/logger.c index 3caea6cc53604203c824bf7df620364b705ebf49..656117ce54439d9e01f2c3c1c345ab623d3befe7 100644 --- a/main/logger.c +++ b/main/logger.c @@ -111,6 +111,7 @@ static struct { unsigned int queue_log:1; unsigned int queue_log_to_file:1; unsigned int queue_adaptive_realtime:1; + unsigned int queue_log_realtime_use_gmt:1; } logfiles = { 1 }; static char hostname[MAXHOSTNAMELEN]; @@ -427,6 +428,9 @@ static void init_logger_chain(int locked, const char *altconf) if ((s = ast_variable_retrieve(cfg, "general", "queue_log_name"))) { ast_copy_string(queue_log_name, s, sizeof(queue_log_name)); } + if ((s = ast_variable_retrieve(cfg, "general", "queue_log_realtime_use_gmt"))) { + logfiles.queue_log_realtime_use_gmt = ast_true(s); + } if ((s = ast_variable_retrieve(cfg, "general", "exec_after_rotate"))) { ast_copy_string(exec_after_rotate, s, sizeof(exec_after_rotate)); } @@ -554,7 +558,7 @@ void ast_queue_log(const char *queuename, const char *callid, const char *agent, if (ast_check_realtime("queue_log")) { tv = ast_tvnow(); - ast_localtime(&tv, &tm, NULL); + ast_localtime(&tv, &tm, logfiles.queue_log_realtime_use_gmt ? "GMT" : NULL); ast_strftime(time_str, sizeof(time_str), "%F %T.%6q", &tm); va_start(ap, fmt); vsnprintf(qlog_msg, sizeof(qlog_msg), fmt, ap);