You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@senssoft.apache.org by rf...@apache.org on 2017/09/18 17:28:07 UTC

[02/21] incubator-senssoft-useralejs git commit: Added hooks for dynamically transforming and filtering event/interval logs as they arrive

Added hooks for dynamically transforming and filtering event/interval logs as they arrive


Project: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/commit/bab30eac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/tree/bab30eac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/diff/bab30eac

Branch: refs/heads/SENSSOFT-192
Commit: bab30eacc54dee7b0b549ff0342267959f4cbabe
Parents: 722f103
Author: Rob Foley <ro...@gmail.com>
Authored: Wed Sep 13 08:44:33 2017 -0700
Committer: Rob Foley <ro...@gmail.com>
Committed: Wed Sep 13 08:44:33 2017 -0700

----------------------------------------------------------------------
 src/packageLogs.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-senssoft-useralejs/blob/bab30eac/src/packageLogs.js
----------------------------------------------------------------------
diff --git a/src/packageLogs.js b/src/packageLogs.js
index 8daa91a..3a5d9b3 100644
--- a/src/packageLogs.js
+++ b/src/packageLogs.js
@@ -26,6 +26,39 @@ var intervalTimer;
 var intervalCounter;
 var intervalLog;
 
+var filterHandler = null;
+var mapHandler = null;
+
+/**
+ * Assigns a handler to filter logs out of the queue.
+ * @param  {Function} callback The handler to invoke when logging.
+ * @return {boolean}          Whether the operation succeeded.
+ */
+export function setLogFilter(callback) {
+  if (typeof callback !== 'function') {
+    return false;
+  }
+
+  filterHandler = callback;
+
+  return true;
+}
+
+/**
+ * Assigns a handler to transform logs from their default structure.
+ * @param  {Function} callback The handler to invoke when logging.
+ * @return {boolean}          Whether the operation succeeded.
+ */
+export function setLogMapper(callback) {
+  if (typeof callback !== 'function') {
+    return false;
+  }
+
+  mapHandler = callback;
+
+  return true;
+}
+
 
 /**
  * Assigns the config and log container to be used by the logging functions.
@@ -75,6 +108,14 @@ export function packageLog(e, detailFcn) {
     'sessionID': config.sessionID
   };
 
+  if (typeof filterHandler === 'function' && !filterHandler(log)) {
+    return false;
+  }
+
+  if (typeof mapHandler === 'function') {
+    log = mapHandler(log);
+  }
+
   logs.push(log);
 
   return true;
@@ -123,6 +164,14 @@ export function packageIntervalLog(e) {
             'sessionID': config.sessionID
         };
 
+        if (typeof filterHandler === 'function' && !filterHandler(intervalLog)) {
+          return false;
+        }
+
+        if (typeof mapHandler === 'function') {
+          intervalLog = mapHandler(intervalLog);
+        }
+
         logs.push(intervalLog);
 
         // Reset