UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

107 lines (91 loc) 2.63 kB
var bunyan = require("bunyan"); var config = require("./config"); var path_mod = require("path"); var cms = require("../index"); var logger = null; var _options = null; //levels: trace, debug, info, warn, error, fatal module.exports.init = function() { var options = config.settings.logging; if (options.path && options.path.indexOf("~/") == 0) { options.path = path_mod.join(cms.getRoot(), options.path.substr(2)); } _options = options; if (options.path) console.log("Writing to log file: " + options.path); logger = bunyan.createLogger({ name: options.name, streams: [{ level: options.level, type: options.type, path: options.path, period: options.period, count: options.count }] }); logger.on('error', function (err, stream) { console.error("Logging error: " + err); }); }; module.exports.log = function(level, msg) { if (logger) { if (level === 'trace') logger.trace(msg); else if (level === 'debug') logger.debug(msg); else if (level === 'info') logger.info(msg); else if (level === 'warn') logger.warn(msg); else if (level === 'error') logger.error(msg); else if (level === 'fatal') logger.fatal(msg); } if (!logger || _options.console === true) console.log(msg); }; module.exports.debug = function(msg) { if (logger) logger.debug(msg); if (!logger || _options.console === true) console.log(msg); }; module.exports.info = function(msg) { if (logger) logger.info(msg); if (!logger || _options.console === true) console.log(msg); }; module.exports.warn = function(msg) { if (logger) logger.warn(msg); if (!logger || _options.console === true) console.log(msg); }; module.exports.error = function(msg, err) { var s = ""; if (msg && msg.stack) s = "Stack: " + msg.stack; else { s = msg; if (err && err.stack) s += " Stack: " + err.stack; } console.error(s); if (logger) logger.error(s); }; module.exports.fatal = function(msg, err) { var s = ""; if (msg && msg.stack) s = "Stack: " + msg.stack; else { s = msg; if (err && err.stack) s += " Stack: " + err.stack; } console.error(s); if (logger) logger.fatal(s); };