1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*!
- * socket.io-node
- * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
- * MIT Licensed
- */
- /**
- * Module dependencies.
- */
- var util = require('./util')
- , toArray = util.toArray;
- /**
- * Log levels.
- */
- var levels = [
- 'error'
- , 'warn'
- , 'info'
- , 'debug'
- ];
- /**
- * Colors for log levels.
- */
- var colors = [
- 31
- , 33
- , 36
- , 90
- ];
- /**
- * Pads the nice output to the longest log level.
- */
- function pad (str) {
- var max = 0;
- for (var i = 0, l = levels.length; i < l; i++)
- max = Math.max(max, levels[i].length);
- if (str.length < max)
- return str + new Array(max - str.length + 1).join(' ');
- return str;
- };
- /**
- * Logger (console).
- *
- * @api public
- */
- var Logger = module.exports = function (opts) {
- opts = opts || {}
- this.colors = false !== opts.colors;
- this.level = 3;
- this.enabled = true;
- };
- /**
- * Log method.
- *
- * @api public
- */
- Logger.prototype.log = function (type) {
- var index = levels.indexOf(type);
- if (index > this.level || !this.enabled)
- return this;
- console.log.apply(
- console
- , [this.colors
- ? ' \033[' + colors[index] + 'm' + pad(type) + ' -\033[39m'
- : type + ':'
- ].concat(toArray(arguments).slice(1))
- );
- return this;
- };
- /**
- * Generate methods.
- */
- levels.forEach(function (name) {
- Logger.prototype[name] = function () {
- this.log.apply(this, [name].concat(toArray(arguments)));
- };
- });
|