sheercms
Version:
Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.
107 lines (91 loc) • 2.63 kB
JavaScript
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);
};