You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2018/12/06 17:27:03 UTC

qpid-dispatch git commit: DISPATCH-1187: add options to log in UTC and to give control over the precise format of the date/time logged

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master f080baabd -> 81d2555db


DISPATCH-1187: add options to log in UTC and to give control over the precise format of the date/time logged


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/81d2555d
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/81d2555d
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/81d2555d

Branch: refs/heads/master
Commit: 81d2555db47ce02ccb31a0631956a23c5a0c7ab0
Parents: f080baa
Author: Gordon Sim <gs...@redhat.com>
Authored: Tue Dec 4 18:01:58 2018 +0000
Committer: Gordon Sim <gs...@redhat.com>
Committed: Thu Dec 6 17:10:08 2018 +0000

----------------------------------------------------------------------
 python/qpid_dispatch/management/qdrouter.json | 12 +++++++++++-
 src/dispatch.c                                |  3 +++
 src/dispatch_private.h                        |  2 ++
 src/log.c                                     | 11 ++++++++---
 src/log_private.h                             |  1 +
 5 files changed, 25 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/81d2555d/python/qpid_dispatch/management/qdrouter.json
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch/management/qdrouter.json b/python/qpid_dispatch/management/qdrouter.json
index 5dbb8b5..5408c9b 100644
--- a/python/qpid_dispatch/management/qdrouter.json
+++ b/python/qpid_dispatch/management/qdrouter.json
@@ -469,7 +469,17 @@
                     "create": true,
                     "required": false,
                     "default": true
-                },                
+                },
+                "timestampsInUTC": {
+                    "type": "boolean",
+                    "description": "Use UTC time rather than localtime in logs.",
+                    "create": true
+                },
+                "timestampFormat": {
+                    "type": "string",
+                    "description": "Format string to use for timestamps in logs.",
+                    "create": true
+                },
                 "allowUnsettledMulticast": {
                     "type": "boolean",
                     "description": "(DEPRECATED) If true, allow senders to send unsettled deliveries to multicast addresses.  These deliveries shall be settled by the ingress router.  If false, unsettled deliveries to multicast addresses shall be rejected.",

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/81d2555d/src/dispatch.c
----------------------------------------------------------------------
diff --git a/src/dispatch.c b/src/dispatch.c
index 1c65057..4906b39 100644
--- a/src/dispatch.c
+++ b/src/dispatch.c
@@ -202,6 +202,8 @@ qd_error_t qd_dispatch_configure_router(qd_dispatch_t *qd, qd_entity_t *entity)
 
     qd->thread_count = qd_entity_opt_long(entity, "workerThreads", 4); QD_ERROR_RET();
     qd->allow_resumable_link_route = qd_entity_opt_bool(entity, "allowResumableLinkRoute", true); QD_ERROR_RET();
+    qd->timestamps_in_utc = qd_entity_opt_bool(entity, "timestampsInUTC", false); QD_ERROR_RET();
+    qd->timestamp_format = qd_entity_opt_string(entity, "timestampFormat", 0); QD_ERROR_RET();
 
     if (! qd->sasl_config_path) {
         qd->sasl_config_path = qd_entity_opt_string(entity, "saslConfigDir", 0); QD_ERROR_RET();
@@ -313,6 +315,7 @@ char * qd_dispatch_policy_host_pattern_lookup(qd_dispatch_t *qd, void *py_obj)
 
 qd_error_t qd_dispatch_prepare(qd_dispatch_t *qd)
 {
+    qd_log_global_options(qd->timestamp_format, qd->timestamps_in_utc);
     qd->server             = qd_server(qd, qd->thread_count, qd->router_id, qd->sasl_config_path, qd->sasl_config_name);
     qd->container          = qd_container(qd);
     qd->router             = qd_router(qd, qd->router_mode, qd->router_area, qd->router_id);

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/81d2555d/src/dispatch_private.h
----------------------------------------------------------------------
diff --git a/src/dispatch_private.h b/src/dispatch_private.h
index 36065dc..f5a089c 100644
--- a/src/dispatch_private.h
+++ b/src/dispatch_private.h
@@ -58,6 +58,8 @@ struct qd_dispatch_t {
     qd_router_mode_t  router_mode;
     bool   allow_resumable_link_route;
     bool   test_hooks;
+    bool   timestamps_in_utc;
+    char*  timestamp_format;
 };
 
 /**

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/81d2555d/src/log.c
----------------------------------------------------------------------
diff --git a/src/log.c b/src/log.c
index b102736..513b579 100644
--- a/src/log.c
+++ b/src/log.c
@@ -83,6 +83,12 @@ DEQ_DECLARE(log_sink_t, log_sink_list_t);
 static log_sink_list_t sink_list = {0};
 
 const char *format = "%Y-%m-%d %H:%M:%S.%%06lu %z";
+bool utc = false;
+
+void qd_log_global_options(const char* _format, bool _utc) {
+    if (_format) format = _format;
+    utc = _utc;
+}
 
 static const char* SINK_STDOUT = "stdout";
 static const char* SINK_STDERR = "stderr";
@@ -303,9 +309,9 @@ static void write_log(qd_log_source_t *log_source, qd_log_entry_t *entry)
         buf[0] = '\0';
 
         time_t sec = entry->time.tv_sec;
-        struct tm *local_tm = localtime(&sec);
+        struct tm *time = utc ? gmtime(&sec) : localtime(&sec);
         char fmt[100];
-        strftime(fmt, sizeof fmt, format, local_tm);
+        strftime(fmt, sizeof fmt, format, time);
         snprintf(buf, 100, fmt, entry->time.tv_usec);
 
         aprintf(&begin, end, "%s ", buf);
@@ -546,7 +552,6 @@ qd_error_t qd_log_entity(qd_entity_t *entity) {
         if (qd_entity_has(entity, "includeSource"))
             src->includeSource = qd_entity_get_bool(entity, "includeSource");
         QD_ERROR_BREAK();
-
     } while(0);
 
     if (module)

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/81d2555d/src/log_private.h
----------------------------------------------------------------------
diff --git a/src/log_private.h b/src/log_private.h
index c28c1f3..1f51490 100644
--- a/src/log_private.h
+++ b/src/log_private.h
@@ -22,6 +22,7 @@
 #include <qpid/dispatch/log.h>
 
 void qd_log_initialize(void);
+void qd_log_global_options(const char* format, bool utc);
 void qd_log_finalize(void);
 
 #define QD_LOG_TEXT_MAX 2048


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org