From 7dbedb31ddcea0958419083df8955c9c2e3e6f41 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 25 Mar 2016 15:31:45 +0100 Subject: [PATCH] Implement logger --- Log/LogLevel.enum.js | 22 ++++++++++ Log/Logger.js | 102 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 Log/LogLevel.enum.js create mode 100644 Log/Logger.js diff --git a/Log/LogLevel.enum.js b/Log/LogLevel.enum.js new file mode 100644 index 0000000..cd6967c --- /dev/null +++ b/Log/LogLevel.enum.js @@ -0,0 +1,22 @@ +/** + * Log Level enum. + * + * @author OMS Development Team + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 * @since 1.0.0 + */ +(function (jsOMS, undefined) +{ + jsOMS.EnumLogLevel = Object.freeze({ + EMERGENCY: 'normal', + ALERT: 'normal', + CRITICAL: 'normal', + ERROR: 'normal', + WARNING: 'normal', + NOTICE: 'normal', + INFO: 'normal', + DEBUG: 'normal' + }); +}(window.jsOMS = window.jsOMS || {})); diff --git a/Log/Logger.js b/Log/Logger.js new file mode 100644 index 0000000..4466aff --- /dev/null +++ b/Log/Logger.js @@ -0,0 +1,102 @@ +/** + * Logger class. + * + * @author OMS Development Team + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 * @since 1.0.0 + */ + (function (jsOMS, undefined) + { + "use strict"; + + /** + * @constructor + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + jsOMS.Logger = function (verbose, ui, remote) + { + this.verbose = typeof verbose !== 'undefined' ? verbose : true; + this.ui = typeof ui !== 'undefined' ? ui : true; + this.remote = typeof remote !== 'undefined' ? remote : false; + }; + + jsOMS.FormManager.prototype.interpolate = function(message, context, level) + { + }; + + jsOMS.FormManager.prototype.write = function(message, context, level) + { + if(this.verbose) { + console.log(this.interpolate(message, context, level))); + } + + if(this.ui) { + // todo: fill log box, set class and initiate animation + } + + if(this.remote) { + let request = new jsOMS.Request(), + request.setData(message); + request.setType('json'); + request.setUri(jsOMS.UriFactory.build('/{/lang}/api/log')); + request.setMethod(jsOMS.EnumRequestMethod.POST); + request.setRequestHeader('Content-Type', 'application/json'); + request.setSuccess(function (xhr) {}); + request.send(); + } + }; + + jsOMS.FormManager.prototype.emergency = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.EMERGENCY) + }; + + jsOMS.FormManager.prototype.alert = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.ALERT) + }; + + jsOMS.FormManager.prototype.critical = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.CRITICAL) + }; + + jsOMS.FormManager.prototype.error = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.ERROR) + }; + + jsOMS.FormManager.prototype.warning = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.WARNING) + }; + + jsOMS.FormManager.prototype.notice = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.NOTICE) + }; + + jsOMS.FormManager.prototype.info = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.INFO) + }; + + jsOMS.FormManager.prototype.debug = function(message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.DEBUG) + }; + + jsOMS.FormManager.prototype.log = function(level, message, context) + { + this.write(message, context, context) + }; + + jsOMS.FormManager.prototype.console = function(level, message, context) + { + this.write(message, context, jsOMS.EnumLogLevel.INFO) + }; +}(window.jsOMS = window.jsOMS || {}));