@connectedcars/logutil
Version:
Simple log formatting for Node
59 lines (58 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.journaldLevels = void 0;
exports.logJournald = logJournald;
var _json = require("./json");
var _levels = require("./levels");
const journaldLevels = {
DEBUG: 7,
INFO: 6,
NOTICE: 5,
WARNING: 4,
ERROR: 3,
CRITICAL: 2,
ALERT: 1,
// not used
EMERGENCY: 0 // not used
};
exports.journaldLevels = journaldLevels;
function logLevelToJournaldLevel(logLevel) {
switch (logLevel) {
case _levels.logLevels.CRITICAL:
return journaldLevels.CRITICAL;
case _levels.logLevels.ERROR:
return journaldLevels.ERROR;
case _levels.logLevels.WARN:
return journaldLevels.WARNING;
case _levels.logLevels.NOTICE:
return journaldLevels.NOTICE;
case _levels.logLevels.INFO:
return journaldLevels.INFO;
case _levels.logLevels.STATISTIC:
return journaldLevels.INFO;
case _levels.logLevels.DEBUG:
return journaldLevels.DEBUG;
case _levels.logLevels.TRACE:
return journaldLevels.DEBUG;
default:
return journaldLevels.INFO;
}
}
function logJournald(level) {
if ((0, _levels.getLogLevel)() <= level) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
const output = args.map(a => {
const o = (0, _json.objectToJson)(a);
return typeof o === 'string' ? o : JSON.stringify(o);
}).join(' ');
const journaldLevel = logLevelToJournaldLevel(level);
// `<${journaldLevel}> is used by journald to determine log level
// eslint-disable-next-line no-console
console.log(`<${journaldLevel}> [${(0, _levels.getLogLevelName)(level)}] ${output}`);
}
}
//# sourceMappingURL=journald.js.map