123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- "use strict";
- var levels = require('./levels')
- , util = require('util')
- , events = require('events')
- , DEFAULT_CATEGORY = '[default]';
- var logWritesEnabled = true;
- /**
- * Models a logging event.
- * @constructor
- * @param {String} categoryName name of category
- * @param {Log4js.Level} level level of message
- * @param {Array} data objects to log
- * @param {Log4js.Logger} logger the associated logger
- * @author Seth Chisamore
- */
- function LoggingEvent (categoryName, level, data, logger) {
- this.startTime = new Date();
- this.categoryName = categoryName;
- this.data = data;
- this.level = level;
- this.logger = logger;
- }
- /**
- * Logger to log messages.
- * use {@see Log4js#getLogger(String)} to get an instance.
- * @constructor
- * @param name name of category to log to
- * @author Stephan Strittmatter
- */
- function Logger (name, level) {
- this.category = name || DEFAULT_CATEGORY;
-
- if (level) {
- this.setLevel(level);
- }
- }
- util.inherits(Logger, events.EventEmitter);
- Logger.DEFAULT_CATEGORY = DEFAULT_CATEGORY;
- Logger.prototype.level = levels.TRACE;
- Logger.prototype.setLevel = function(level) {
- this.level = levels.toLevel(level, this.level || levels.TRACE);
- };
- Logger.prototype.removeLevel = function() {
- delete this.level;
- };
- Logger.prototype.log = function() {
- var args = Array.prototype.slice.call(arguments)
- , logLevel = levels.toLevel(args.shift(), levels.INFO)
- , loggingEvent;
- if (this.isLevelEnabled(logLevel)) {
- loggingEvent = new LoggingEvent(this.category, logLevel, args, this);
- this.emit("log", loggingEvent);
- }
- };
- Logger.prototype.isLevelEnabled = function(otherLevel) {
- return this.level.isLessThanOrEqualTo(otherLevel);
- };
- ['Trace','Debug','Info','Warn','Error','Fatal', 'Mark'].forEach(
- function(levelString) {
- var level = levels.toLevel(levelString);
- Logger.prototype['is'+levelString+'Enabled'] = function() {
- return this.isLevelEnabled(level);
- };
-
- Logger.prototype[levelString.toLowerCase()] = function () {
- if (logWritesEnabled && this.isLevelEnabled(level)) {
- var args = Array.prototype.slice.call(arguments);
- args.unshift(level);
- Logger.prototype.log.apply(this, args);
- }
- };
- }
- );
- /**
- * Disable all log writes.
- * @returns {void}
- */
- function disableAllLogWrites() {
- logWritesEnabled = false;
- }
- /**
- * Enable log writes.
- * @returns {void}
- */
- function enableAllLogWrites() {
- logWritesEnabled = true;
- }
- exports.LoggingEvent = LoggingEvent;
- exports.Logger = Logger;
- exports.disableAllLogWrites = disableAllLogWrites;
- exports.enableAllLogWrites = enableAllLogWrites;
|