// Copyright 2006 The Closure Library Authors. All Rights Reserved. // // 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. /** * @fileoverview Definition of the LogRecord class. Please minimize * dependencies this file has on other closure classes as any dependency it * takes won't be able to use the logging infrastructure. * */ goog.provide('goog.debug.LogRecord'); /** * LogRecord objects are used to pass logging requests between * the logging framework and individual log Handlers. * @constructor * @param {goog.debug.Logger.Level} level One of the level identifiers. * @param {string} msg The string message. * @param {string} loggerName The name of the source logger. * @param {number=} opt_time Time this log record was created if other than now. * If 0, we use #goog.now. * @param {number=} opt_sequenceNumber Sequence number of this log record. This * should only be passed in when restoring a log record from persistence. */ goog.debug.LogRecord = function(level, msg, loggerName, opt_time, opt_sequenceNumber) { this.reset(level, msg, loggerName, opt_time, opt_sequenceNumber); }; /** * Time the LogRecord was created. * @type {number} * @private */ goog.debug.LogRecord.prototype.time_; /** * Level of the LogRecord * @type {goog.debug.Logger.Level} * @private */ goog.debug.LogRecord.prototype.level_; /** * Message associated with the record * @type {string} * @private */ goog.debug.LogRecord.prototype.msg_; /** * Name of the logger that created the record. * @type {string} * @private */ goog.debug.LogRecord.prototype.loggerName_; /** * Sequence number for the LogRecord. Each record has a unique sequence number * that is greater than all log records created before it. * @type {number} * @private */ goog.debug.LogRecord.prototype.sequenceNumber_ = 0; /** * Exception associated with the record * @type {Object} * @private */ goog.debug.LogRecord.prototype.exception_ = null; /** * Exception text associated with the record * @type {?string} * @private */ goog.debug.LogRecord.prototype.exceptionText_ = null; /** * @define {boolean} Whether to enable log sequence numbers. */ goog.define('goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS', true); /** * A sequence counter for assigning increasing sequence numbers to LogRecord * objects. * @type {number} * @private */ goog.debug.LogRecord.nextSequenceNumber_ = 0; /** * Sets all fields of the log record. * @param {goog.debug.Logger.Level} level One of the level identifiers. * @param {string} msg The string message. * @param {string} loggerName The name of the source logger. * @param {number=} opt_time Time this log record was created if other than now. * If 0, we use #goog.now. * @param {number=} opt_sequenceNumber Sequence number of this log record. This * should only be passed in when restoring a log record from persistence. */ goog.debug.LogRecord.prototype.reset = function(level, msg, loggerName, opt_time, opt_sequenceNumber) { if (goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS) { this.sequenceNumber_ = typeof opt_sequenceNumber == 'number' ? opt_sequenceNumber : goog.debug.LogRecord.nextSequenceNumber_++; } this.time_ = opt_time || goog.now(); this.level_ = level; this.msg_ = msg; this.loggerName_ = loggerName; delete this.exception_; delete this.exceptionText_; }; /** * Get the source Logger's name. * * @return {string} source logger name (may be null). */ goog.debug.LogRecord.prototype.getLoggerName = function() { return this.loggerName_; }; /** * Get the exception that is part of the log record. * * @return {Object} the exception. */ goog.debug.LogRecord.prototype.getException = function() { return this.exception_; }; /** * Set the exception that is part of the log record. * * @param {Object} exception the exception. */ goog.debug.LogRecord.prototype.setException = function(exception) { this.exception_ = exception; }; /** * Get the exception text that is part of the log record. * * @return {?string} Exception text. */ goog.debug.LogRecord.prototype.getExceptionText = function() { return this.exceptionText_; }; /** * Set the exception text that is part of the log record. * * @param {string} text The exception text. */ goog.debug.LogRecord.prototype.setExceptionText = function(text) { this.exceptionText_ = text; }; /** * Get the source Logger's name. * * @param {string} loggerName source logger name (may be null). */ goog.debug.LogRecord.prototype.setLoggerName = function(loggerName) { this.loggerName_ = loggerName; }; /** * Get the logging message level, for example Level.SEVERE. * @return {goog.debug.Logger.Level} the logging message level. */ goog.debug.LogRecord.prototype.getLevel = function() { return this.level_; }; /** * Set the logging message level, for example Level.SEVERE. * @param {goog.debug.Logger.Level} level the logging message level. */ goog.debug.LogRecord.prototype.setLevel = function(level) { this.level_ = level; }; /** * Get the "raw" log message, before localization or formatting. * * @return {string} the raw message string. */ goog.debug.LogRecord.prototype.getMessage = function() { return this.msg_; }; /** * Set the "raw" log message, before localization or formatting. * * @param {string} msg the raw message string. */ goog.debug.LogRecord.prototype.setMessage = function(msg) { this.msg_ = msg; }; /** * Get event time in milliseconds since 1970. * * @return {number} event time in millis since 1970. */ goog.debug.LogRecord.prototype.getMillis = function() { return this.time_; }; /** * Set event time in milliseconds since 1970. * * @param {number} time event time in millis since 1970. */ goog.debug.LogRecord.prototype.setMillis = function(time) { this.time_ = time; }; /** * Get the sequence number. *
* Sequence numbers are normally assigned in the LogRecord * constructor, which assigns unique sequence numbers to * each new LogRecord in increasing order. * @return {number} the sequence number. */ goog.debug.LogRecord.prototype.getSequenceNumber = function() { return this.sequenceNumber_; };