mirror of https://github.com/sipwise/asterisk.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
--- main/logger.c (revision 138020)
|
|
+++ main/logger.c (working copy)
|
|
@@ -353,16 +353,34 @@
|
|
void ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
- AST_LIST_LOCK(&logchannels);
|
|
- if (qlog) {
|
|
+ char qlog_msg[8192];
|
|
+ char time_str[16];
|
|
+
|
|
+ if (ast_check_realtime("queue_log")) {
|
|
va_start(ap, fmt);
|
|
- fprintf(qlog, "%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent, event);
|
|
- vfprintf(qlog, fmt, ap);
|
|
- fprintf(qlog, "\n");
|
|
+ vsnprintf(qlog_msg, sizeof(qlog_msg), fmt, ap);
|
|
va_end(ap);
|
|
- fflush(qlog);
|
|
+
|
|
+ snprintf(time_str, sizeof(time_str), "%ld", (long)time(NULL));
|
|
+ ast_store_realtime("queue_log", "time", time_str,
|
|
+ "callid", callid,
|
|
+ "queuename", queuename,
|
|
+ "agent", agent,
|
|
+ "event", event,
|
|
+ "data", qlog_msg,
|
|
+ NULL);
|
|
+ } else {
|
|
+ if (qlog) {
|
|
+ AST_LIST_LOCK(&logchannels);
|
|
+ va_start(ap, fmt);
|
|
+ fprintf(qlog, "%ld|%s|%s|%s|%s|", (long)time(NULL), callid, queuename, agent, event);
|
|
+ vfprintf(qlog, fmt, ap);
|
|
+ fprintf(qlog, "\n");
|
|
+ va_end(ap);
|
|
+ fflush(qlog);
|
|
+ AST_LIST_UNLOCK(&logchannels);
|
|
+ }
|
|
}
|
|
- AST_LIST_UNLOCK(&logchannels);
|
|
}
|
|
|
|
int reload_logger(int rotate)
|