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