annotate node_modules/socket.io/lib/logger.js @ 70:753414e075a0

danger stash pop
author tzara <rc-web@kiben.net>
date Sat, 26 Oct 2013 13:43:08 +0000
parents 333afcfd3f3a
children
rev   line source
rc-web@69 1
rc-web@69 2 /*!
rc-web@69 3 * socket.io-node
rc-web@69 4 * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
rc-web@69 5 * MIT Licensed
rc-web@69 6 */
rc-web@69 7
rc-web@69 8 /**
rc-web@69 9 * Module dependencies.
rc-web@69 10 */
rc-web@69 11
rc-web@69 12 var util = require('./util')
rc-web@69 13 , toArray = util.toArray;
rc-web@69 14
rc-web@69 15 /**
rc-web@69 16 * Log levels.
rc-web@69 17 */
rc-web@69 18
rc-web@69 19 var levels = [
rc-web@69 20 'error'
rc-web@69 21 , 'warn'
rc-web@69 22 , 'info'
rc-web@69 23 , 'debug'
rc-web@69 24 ];
rc-web@69 25
rc-web@69 26 /**
rc-web@69 27 * Colors for log levels.
rc-web@69 28 */
rc-web@69 29
rc-web@69 30 var colors = [
rc-web@69 31 31
rc-web@69 32 , 33
rc-web@69 33 , 36
rc-web@69 34 , 90
rc-web@69 35 ];
rc-web@69 36
rc-web@69 37 /**
rc-web@69 38 * Pads the nice output to the longest log level.
rc-web@69 39 */
rc-web@69 40
rc-web@69 41 function pad (str) {
rc-web@69 42 var max = 0;
rc-web@69 43
rc-web@69 44 for (var i = 0, l = levels.length; i < l; i++)
rc-web@69 45 max = Math.max(max, levels[i].length);
rc-web@69 46
rc-web@69 47 if (str.length < max)
rc-web@69 48 return str + new Array(max - str.length + 1).join(' ');
rc-web@69 49
rc-web@69 50 return str;
rc-web@69 51 };
rc-web@69 52
rc-web@69 53 /**
rc-web@69 54 * Logger (console).
rc-web@69 55 *
rc-web@69 56 * @api public
rc-web@69 57 */
rc-web@69 58
rc-web@69 59 var Logger = module.exports = function (opts) {
rc-web@69 60 opts = opts || {}
rc-web@69 61 this.colors = false !== opts.colors;
rc-web@69 62 this.level = 3;
rc-web@69 63 this.enabled = true;
rc-web@69 64 };
rc-web@69 65
rc-web@69 66 /**
rc-web@69 67 * Log method.
rc-web@69 68 *
rc-web@69 69 * @api public
rc-web@69 70 */
rc-web@69 71
rc-web@69 72 Logger.prototype.log = function (type) {
rc-web@69 73 var index = levels.indexOf(type);
rc-web@69 74
rc-web@69 75 if (index > this.level || !this.enabled)
rc-web@69 76 return this;
rc-web@69 77
rc-web@69 78 console.log.apply(
rc-web@69 79 console
rc-web@69 80 , [this.colors
rc-web@69 81 ? ' \033[' + colors[index] + 'm' + pad(type) + ' -\033[39m'
rc-web@69 82 : type + ':'
rc-web@69 83 ].concat(toArray(arguments).slice(1))
rc-web@69 84 );
rc-web@69 85
rc-web@69 86 return this;
rc-web@69 87 };
rc-web@69 88
rc-web@69 89 /**
rc-web@69 90 * Generate methods.
rc-web@69 91 */
rc-web@69 92
rc-web@69 93 levels.forEach(function (name) {
rc-web@69 94 Logger.prototype[name] = function () {
rc-web@69 95 this.log.apply(this, [name].concat(toArray(arguments)));
rc-web@69 96 };
rc-web@69 97 });