qlogger
Version:
very fast easily customizable logger
46 lines (35 loc) • 1.34 kB
JavaScript
;
// nodejs, syslog and qlogger level names and loglevels
var levels = {
// none: -1, panic: 0, fatal: 1, crit: 2, error: 3, warn: 4, notice: 5, info: 6, debug: 7, trace: 8, all: 9,
// emerg: 0, alert: 1, err: 3, warning: 4,
panic: 0, emerg: 0,
fatal: 1, alert: 1,
crit: 2,
error: 3, err: 3,
warn: 4, warning: 4,
notice: 5,
info: 6,
debug: 7,
trace: 8,
all: 9,
none: -1,
};
// level name lookup by level number, 3 => 'info'
var names = [];
Object.keys(levels).forEach(function(key) { var ix = levels[key]; names[ix] = names[ix] || key });
// uppercase, capitalized and numeric level names, 'INFO' => 3
for (var name in levels) levels[name.toUpperCase()] = levels[name];
for (var name in levels) levels[toFlat(name[0].toUpperCase() + name.slice(1).toLowerCase())] = levels[name];
for (var level in names) levels[String(level)] = Number(level);
// manifest constants, LOG_INFO => 3
var constants = {};
for (var name in levels) if (isNaN(parseInt(name))) constants[toFlat('LOG_' + name.toUpperCase())] = levels[name];
module.exports = {
levels: levels,
names: names,
constants: constants,
};
function toStruct(o) { return toStruct.prototype = o }
function toFlat(s) { var x = s | 0; return s }
console.log("AR:", module.exports);