Mercurial > hg > nodescore
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 }); |