X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fstatic%2Flog4javascript-1.4.6%2Fjs%2Flog4javascript_lite_uncompressed.js;fp=planetstack%2Fcore%2Fstatic%2Flog4javascript-1.4.6%2Fjs%2Flog4javascript_lite_uncompressed.js;h=12e97d8f18a3296c27c3927721617a4ab0e5a37c;hb=e18b3446e847dc64339db83990f2db9af6803b99;hp=0000000000000000000000000000000000000000;hpb=44fd4cc7ec7f9e1a6f960627ce6870695846a506;p=plstackapi.git diff --git a/planetstack/core/static/log4javascript-1.4.6/js/log4javascript_lite_uncompressed.js b/planetstack/core/static/log4javascript-1.4.6/js/log4javascript_lite_uncompressed.js new file mode 100644 index 0000000..12e97d8 --- /dev/null +++ b/planetstack/core/static/log4javascript-1.4.6/js/log4javascript_lite_uncompressed.js @@ -0,0 +1,620 @@ +/** + * Copyright 2013 Tim Down. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (!Array.prototype.shift) { + Array.prototype.shift = function() { + if (this.length > 0) { + var firstItem = this[0]; + for (var i = 0, len = this.length - 1; i < len; i++) { + this[i] = this[i + 1]; + } + this.length--; + return firstItem; + } + }; +} + +var log4javascript; + +(function() { + var newLine = "\r\n"; + function Log4JavaScript() {} + log4javascript = new Log4JavaScript(); + log4javascript.version = "1.4.6"; + log4javascript.edition = "log4javascript_lite"; + + function getExceptionMessage(ex) { + if (ex.message) { + return ex.message; + } else if (ex.description) { + return ex.description; + } else { + return String(ex); + } + } + + // Gets the portion of the URL after the last slash + function getUrlFileName(url) { + var lastSlashIndex = Math.max(url.lastIndexOf("/"), url.lastIndexOf("\\")); + return url.substr(lastSlashIndex + 1); + } + + // Returns a nicely formatted representation of an error + function getExceptionStringRep(ex) { + if (ex) { + var exStr = "Exception: " + getExceptionMessage(ex); + try { + if (ex.lineNumber) { + exStr += " on line number " + ex.lineNumber; + } + if (ex.fileName) { + exStr += " in file " + getUrlFileName(ex.fileName); + } + } catch (localEx) { + } + if (showStackTraces && ex.stack) { + exStr += newLine + "Stack trace:" + newLine + ex.stack; + } + return exStr; + } + return null; + } + + function isError(err) { + return (err instanceof Error); + } + + function bool(obj) { + return Boolean(obj); + } + + var enabled = (typeof log4javascript_disabled != "undefined") && + log4javascript_disabled ? false : true; + + log4javascript.setEnabled = function(enable) { + enabled = bool(enable); + }; + + log4javascript.isEnabled = function() { + return enabled; + }; + + var showStackTraces = false; + + log4javascript.setShowStackTraces = function(show) { + showStackTraces = bool(show); + }; + + /* ---------------------------------------------------------------------- */ + // Levels + + var Level = function(level, name) { + this.level = level; + this.name = name; + }; + + Level.prototype = { + toString: function() { + return this.name; + }, + equals: function(level) { + return this.level == level.level; + }, + isGreaterOrEqual: function(level) { + return this.level >= level.level; + } + }; + + Level.ALL = new Level(Number.MIN_VALUE, "ALL"); + Level.TRACE = new Level(10000, "TRACE"); + Level.DEBUG = new Level(20000, "DEBUG"); + Level.INFO = new Level(30000, "INFO"); + Level.WARN = new Level(40000, "WARN"); + Level.ERROR = new Level(50000, "ERROR"); + Level.FATAL = new Level(60000, "FATAL"); + Level.OFF = new Level(Number.MAX_VALUE, "OFF"); + + log4javascript.Level = Level; + + /* ---------------------------------------------------------------------- */ + // Appenders + + function Appender() { + var getConsoleHtmlLines = function() { + return [ +'', +'', +' ', +' log4javascript', +' ', +' ', +' ', +' ', +' ', +' ', +'', +' ', +'
', +' Options:', +' ', +' ', +' ', +'
', +'
', +' ', +'' +]; + }; + + var popUp = null; + var popUpsBlocked = false; + var popUpClosed = false; + var popUpLoaded = false; + var complainAboutPopUpBlocking = true; + var initialized = false; + var isSupported = true; + var width = 600; + var height = 400; + var focusPopUp = false; + var queuedLoggingEvents = new Array(); + + function isLoaded(win) { + try { + return bool(win.loaded); + } catch (ex) { + return false; + } + } + + function finalInit() { + popUpLoaded = true; + appendQueuedLoggingEvents(); + } + + function writeHtml(doc) { + var lines = getConsoleHtmlLines(); + doc.open(); + for (var i = 0, len = lines.length; i < len; i++) { + doc.writeln(lines[i]); + } + doc.close(); + } + + function pollConsoleWindow() { + function pollConsoleWindowLoaded() { + if (popUpLoaded) { + clearInterval(poll); + } else if (bool(popUp) && isLoaded(popUp)) { + clearInterval(poll); + finalInit(); + } + } + + // Poll the pop-up since the onload event is not reliable + var poll = setInterval(pollConsoleWindowLoaded, 100); + } + + function init() { + var windowProperties = "width=" + width + ",height=" + height + ",status,resizable"; + var windowName = "log4javascriptLitePopUp" + location.host.replace(/[^a-z0-9]/gi, "_"); + + popUp = window.open("", windowName, windowProperties); + popUpClosed = false; + if (popUp) { + if (isLoaded(popUp)) { + popUp.mainPageReloaded(); + finalInit(); + } else { + writeHtml(popUp.document); + + // Check if the pop-up window object is available + if (isLoaded(popUp)) { + finalInit(); + } else { + pollConsoleWindow(); + } + } + } else { + isSupported = false; + if (complainAboutPopUpBlocking) { + alert("log4javascript: pop-up windows appear to be blocked. Please unblock them to use pop-up logging."); + } + } + initialized = true; + } + + function safeToAppend() { + if (!popUpsBlocked && !popUpClosed) { + if (popUp.closed) { + popUpClosed = true; + return false; + } + if (!popUpLoaded && popUp.loaded) { + popUpLoaded = true; + } + } + return !popUpsBlocked && popUpLoaded && !popUpClosed; + } + + function padWithZeroes(num, len) { + var str = "" + num; + while (str.length < len) { + str = "0" + str; + } + return str; + } + + function padWithSpaces(str, len) { + while (str.length < len) { + str += " "; + } + return str; + } + + this.append = function(loggingEvent) { + if (!initialized) { + init(); + } + queuedLoggingEvents.push(loggingEvent); + if (safeToAppend()) { + appendQueuedLoggingEvents(); + } + }; + + function appendQueuedLoggingEvents() { + if (safeToAppend()) { + while (queuedLoggingEvents.length > 0) { + var currentLoggingEvent = queuedLoggingEvents.shift(); + var date = currentLoggingEvent.timeStamp; + var formattedDate = padWithZeroes(date.getHours(), 2) + ":" + + padWithZeroes(date.getMinutes(), 2) + ":" + padWithZeroes(date.getSeconds(), 2); + var formattedMessage = formattedDate + " " + padWithSpaces(currentLoggingEvent.level.name, 5) + + " - " + currentLoggingEvent.getCombinedMessages(); + var throwableStringRep = currentLoggingEvent.getThrowableStrRep(); + if (throwableStringRep) { + formattedMessage += newLine + throwableStringRep; + } + popUp.log(currentLoggingEvent.level, formattedMessage); + } + if (focusPopUp) { + popUp.focus(); + } + } + } + } + + log4javascript.Appender = Appender; + + /* ---------------------------------------------------------------------- */ + // Loggers + + function Logger() { + var appender = new Appender(); + var loggerLevel = Level.ALL; + + this.log = function(level, params) { + if (enabled && level.isGreaterOrEqual(this.getLevel())) { + // Check whether last param is an exception + var exception; + var finalParamIndex = params.length - 1; + var lastParam = params[params.length - 1]; + if (params.length > 1 && isError(lastParam)) { + exception = lastParam; + finalParamIndex--; + } + + // Construct genuine array for the params + var messages = []; + for (var i = 0; i <= finalParamIndex; i++) { + messages[i] = params[i]; + } + + var loggingEvent = new LoggingEvent( + this, new Date(), level, messages, exception); + + appender.append(loggingEvent); + } + }; + + this.setLevel = function(level) { + loggerLevel = level; + }; + + this.getLevel = function() { + return loggerLevel; + }; + } + + Logger.prototype = { + trace: function() { + this.log(Level.TRACE, arguments); + }, + + debug: function() { + this.log(Level.DEBUG, arguments); + }, + + info: function() { + this.log(Level.INFO, arguments); + }, + + warn: function() { + this.log(Level.WARN, arguments); + }, + + error: function() { + this.log(Level.ERROR, arguments); + }, + + fatal: function() { + this.log(Level.FATAL, arguments); + }, + + isEnabledFor: function(level) { + return level.isGreaterOrEqual(this.getLevel()); + }, + + isTraceEnabled: function() { + return this.isEnabledFor(Level.TRACE); + }, + + isDebugEnabled: function() { + return this.isEnabledFor(Level.DEBUG); + }, + + isInfoEnabled: function() { + return this.isEnabledFor(Level.INFO); + }, + + isWarnEnabled: function() { + return this.isEnabledFor(Level.WARN); + }, + + isErrorEnabled: function() { + return this.isEnabledFor(Level.ERROR); + }, + + isFatalEnabled: function() { + return this.isEnabledFor(Level.FATAL); + } + }; + + /* ---------------------------------------------------------------------- */ + // Logger access methods + + var defaultLogger = null; + log4javascript.getDefaultLogger = function() { + if (!defaultLogger) { + defaultLogger = new Logger(); + } + return defaultLogger; + }; + + log4javascript.getLogger = log4javascript.getDefaultLogger; + + var nullLogger = null; + log4javascript.getNullLogger = function() { + if (!nullLogger) { + nullLogger = new Logger(); + nullLogger.setLevel(Level.OFF); + } + return nullLogger; + }; + + /* ---------------------------------------------------------------------- */ + // Logging events + + var LoggingEvent = function(logger, timeStamp, level, messages, + exception) { + this.logger = logger; + this.timeStamp = timeStamp; + this.level = level; + this.messages = messages; + this.exception = exception; + }; + + LoggingEvent.prototype = { + getThrowableStrRep: function() { + return this.exception ? + getExceptionStringRep(this.exception) : ""; + }, + + getCombinedMessages: function() { + return (this.messages.length === 1) ? this.messages[0] : + this.messages.join(newLine); + } + }; + + log4javascript.LoggingEvent = LoggingEvent; + + // Ensure that the log4javascript object is available in the window. This + // is necessary for log4javascript to be available in IE if loaded using + // Dojo's module system + window.log4javascript = log4javascript; +})(); \ No newline at end of file