@8select/strulo
Version:
Log messages in a structured format.
55 lines (48 loc) • 1.49 kB
JavaScript
import createLogger from 'debug';
import { getLevelName, logLevels } from './log-levels';
import { formatMessage } from './message';
var logFunctions = Object.keys(logLevels).reduce(buildLogFunctionPerLogLevel, {});
export var debug = function debug(message) {
logFunctions.debug(message);
};
export var info = function info(message) {
logFunctions.info(message);
};
export var notice = function notice(message) {
logFunctions.notice(message);
};
export var warning = function warning(message) {
logFunctions.warning(message);
};
export var error = function error(message) {
logFunctions.error(message);
};
export var critical = function critical(message) {
logFunctions.critical(message);
};
export var alert = function alert(message) {
logFunctions.alert(message);
};
export var emergency = function emergency(message) {
logFunctions.emergency(message);
};
function buildLogFunctionPerLogLevel(previousObjectWithLogFunctions, currentLogLevel) {
var _Object$assign;
return Object.assign(previousObjectWithLogFunctions, {}, (_Object$assign = {}, _Object$assign[getLevelName(currentLogLevel).toLowerCase()] = log(currentLogLevel), _Object$assign));
}
function log(level) {
var logger = createLogger(getLevelName(level));
return function (message) {
logger(formatMessage(level, message));
};
}
export default {
debug: debug,
info: info,
notice: notice,
warning: warning,
error: error,
critical: critical,
alert: alert,
emergency: emergency
};