reshuffle
Version:
Reshuffle is a fast, unopinionated, minimalist integration framework
80 lines • 3.21 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
exports.createLogger = void 0;
var util_1 = __importDefault(require("util"));
var winston_1 = require("winston");
var colorize = winston_1.format.colorize, combine = winston_1.format.combine, printf = winston_1.format.printf, json = winston_1.format.json, timestamp = winston_1.format.timestamp;
var consoleFormat = printf(function (_a) {
var level = _a.level, message = _a.message, timestamp = _a.timestamp, handlerId = _a.handlerId;
return timestamp + " " + (handlerId ? 'event' : 'runtime') + " " + level + " " + message;
});
var consoleLikeMessage = winston_1.format(function (data) {
// @ts-ignore
var args = (data[Symbol["for"]('splat')] || []).map(function (elem) {
if (elem instanceof Error) {
elem.stack = '\n ' + elem.stack;
}
return elem;
});
var message = util_1["default"].format.apply(util_1["default"], __spreadArrays([data.message.trim()], args));
return __assign(__assign({}, data), { message: message.trim() });
});
var loggerOptions = {
level: 'info',
format: combine(consoleLikeMessage(), timestamp(), json()),
exitOnError: false,
transports: [
// - Write all logs with level `error` to `error.log`
new winston_1.transports.File({
filename: './logs/error.log',
level: 'error'
}),
// - Write all logs to `combined.log`
new winston_1.transports.File({
filename: './logs/combined.log'
}),
new winston_1.transports.Console({
format: combine(colorize({ level: true, message: true }), consoleFormat)
}),
]
};
var createLogger = function (options) {
if (options === void 0) { options = loggerOptions; }
var logger = winston_1.createLogger(options);
var levels = ['debug', 'info', 'error', 'warn', 'debug'];
// Print stacktrace for Errors
levels.forEach(function (level) {
// @ts-ignore
logger[level] = function (msg) {
var remains = [];
for (var _i = 1; _i < arguments.length; _i++) {
remains[_i - 1] = arguments[_i];
}
return logger.log.apply(logger, __spreadArrays([level, '', msg], remains));
};
});
return logger;
};
exports.createLogger = createLogger;
//# sourceMappingURL=Logger.js.map