UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

113 lines (91 loc) 3.08 kB
/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2006 STZ-IDA, Germany, http://www.stz-ida.de 2009 1&1 Internet AG, Germany, http://www.1und1.de License: MIT: https://opensource.org/licenses/MIT See the LICENSE file in the project's top-level directory for details. Authors: * Carsten Lergenmueller (carstenl) * Fabian Jakobs (fjakobs) ************************************************************************ */ /** * An appender that writes all messages to a memory container. The messages * can be retrieved later, f. i. when an error dialog pops up and the question * arises what actions have caused the error. * * A mark feature also exists which can be used to remember a point in time. * When retrieving log events, it is possible to get only those events * after the marked time. This is useful if data from the buffer is extracted * and f. i. sent to a logging system. Whenever this happens, a mark() call * can be used so that the next extraction will only get new data. */ qx.Bootstrap.define("qx.log.appender.RingBuffer", { extend : qx.util.RingBuffer, /** * @param maxMessages {Integer?50} Maximum number of messages in the buffer */ construct : function(maxMessages) { this.setMaxMessages(maxMessages || 50); }, members : { /** * Set the maximum number of messages to hold. If null the number of * messages is not limited. * * Warning: Changing this property will clear the events logged so far. * * @param maxMessages {Integer} the maximum number of messages to hold */ setMaxMessages : function(maxMessages) { this.setMaxEntries(maxMessages); }, /** * Get the maximum number of messages to hold * * @return {Integer} the maximum number of messages */ getMaxMessages : function() { return this.getMaxEntries(); }, /** * Processes a single log entry * * @param entry {Map} The entry to process */ process : function(entry) { this.addEntry(entry); }, /** * Returns all stored log events * * @return {Array} array of stored log events */ getAllLogEvents : function() { return this.getAllEntries(); }, /** * Returns log events which have been logged previously. * * @param count {Integer} The number of events to retrieve. If there are * more events than the given count, the oldest ones will not be returned. * * @param startingFromMark {Boolean ? false} If true, only entries since the last call to mark() * will be returned * @return {Array} array of stored log events */ retrieveLogEvents : function(count, startingFromMark) { return this.getEntries(count, startingFromMark); }, /** * Clears the log history */ clearHistory : function() { this.clear(); } } });