| node_modules |
| # Logger | |||||
| Logger is a very simple logging library for node.js. | |||||
| ## Installation | |||||
| Install like any other NPM library: | |||||
| ``` | |||||
| npm install --save logger | |||||
| ``` | |||||
| ## Usage | |||||
| ``` | |||||
| var logger = require("logger"); | |||||
| ``` | |||||
| Logger has 4 methods for logging: | |||||
| ``` | |||||
| logger.info("foo"); // yyyy/mm/dd HH:MM:SS INFO: foo | |||||
| logger.notice("foo"); // yyyy/mm/dd HH:MM:SS NOTICE: foo | |||||
| logger.warn("foo"); // yyyy/mm/dd HH:MM:SS WARNING: foo | |||||
| logger.die("foo"); // yyyy/mm/dd HH:MM:SS ERROR: foo | |||||
| ``` | |||||
| After logger.die, the process will immediately exit. | |||||
| If an error object is passed instead of a string, a stack trace will be printed, like this: | |||||
| ``` | |||||
| logger.notice(new Error("foo")); | |||||
| // yyyy/mm/dd HH:MM:SS NOTICE: foo - stack trace: | |||||
| // Trace: [Error: foo] | |||||
| // <stack trace> | |||||
| ``` | |||||
| To set a different color theme, use `setTheme`: | |||||
| ``` | |||||
| logger.setTheme({ | |||||
| timestamp: "green" | |||||
| }) | |||||
| ``` | |||||
| The available properties for setTheme is: | |||||
| * timestamp: timestamp, default: "blue" | |||||
| * level_0: logger.info, default: "grey" | |||||
| * level_1: logger.notice, default: "yellow" | |||||
| * level_2: logger.warn, default: "red" | |||||
| * level_3: logger.die, default: ["bold", "red"] | |||||
| The available values for themes are listed here: npmjs.com/package/colors |
| var colors = require("colors"); | |||||
| var theme = { | |||||
| timestamp: "blue", | |||||
| level_0: "grey", | |||||
| level_1: "yellow", | |||||
| level_2: "red", | |||||
| level_3: ["bold", "red"] | |||||
| } | |||||
| colors.setTheme(theme); | |||||
| var strs = [ | |||||
| "INFO:", | |||||
| "NOTICE:", | |||||
| "WARNING:", | |||||
| "ERROR:" | |||||
| ] | |||||
| function pad(str, length, padChar) { | |||||
| if (typeof str === "number") | |||||
| str = str.toString(); | |||||
| var missing = (length - str.length) + 1; | |||||
| if (missing <= 0) | |||||
| return str; | |||||
| return new Array(missing).join(padChar) + str; | |||||
| } | |||||
| function prefix(level) { | |||||
| var date = new Date(); | |||||
| var yyyy = pad(date.getFullYear(), 4, "0"); | |||||
| var mm = pad(date.getMonth() + 1, 2, "0"); | |||||
| var dd = pad(date.getDate(), 2, "0"); | |||||
| var HH = pad(date.getHours(), 2, "0"); | |||||
| var MM = pad(date.getMinutes(), 2, "0"); | |||||
| var SS = pad(date.getSeconds(), 2, "0"); | |||||
| var dateStr = (yyyy+"/"+mm+"/"+dd+" "+HH+":"+MM+":"+SS).timestamp; | |||||
| var levelStr = strs[level]["level_"+level]; | |||||
| return dateStr+" "+levelStr+" "; | |||||
| } | |||||
| function log(level, msg) { | |||||
| if (typeof msg === "string") { | |||||
| console.log( | |||||
| prefix(level)+ | |||||
| msg["level_"+level] | |||||
| ); | |||||
| } else { | |||||
| console.log( | |||||
| prefix(level)+ | |||||
| (msg.toString()+" - stack trace:")["level_"+level] | |||||
| ); | |||||
| console.trace(msg); | |||||
| } | |||||
| } | |||||
| exports.info = function(msg) { log(0, msg) }; | |||||
| exports.notice = function(msg) { log(1, msg) }; | |||||
| exports.warn = function(msg) { log(2, msg) }; | |||||
| exports.die = function(err, exitCode) { | |||||
| log(3, err); | |||||
| process.exit(exitCode || 1); | |||||
| } | |||||
| exports.setTheme = function(obj) { | |||||
| for (var i in obj) { | |||||
| theme[i] = obj[i]; | |||||
| } | |||||
| colors.setTheme(theme); | |||||
| } |
| { | |||||
| "name": "logger", | |||||
| "version": "1.0.0", | |||||
| "description": "Tiny logging library for node.js.", | |||||
| "main": "index.js", | |||||
| "scripts": { | |||||
| "test": "echo \"Error: no test specified\" && exit 1" | |||||
| }, | |||||
| "author": { | |||||
| "name": "Martin Dørum Nygaard", | |||||
| "email": "martid0311@gmail.com", | |||||
| "url": "http://mort.coffee" | |||||
| }, | |||||
| "license": "GPLv2", | |||||
| "dependencies": { | |||||
| "colors": "^1.1.2" | |||||
| } | |||||
| } |