@genie-solutions/genie-logger
Version:
Reusable Node.js logger for platform Lambda services.
75 lines • 8.38 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);
};
Object.defineProperty(exports, "__esModule", { value: true });
var winston_1 = require("winston");
var uuid_1 = require("uuid");
exports.createNoopLogger = function () {
var logger = {
debug: function () { },
info: function () { },
warn: function () { },
error: function () { },
profile: function () { },
extend: function () {
return logger;
}
};
return logger;
};
var withMetaData = winston_1.format(function (info, meta) {
return __assign(__assign({}, meta), info);
});
var loggerFromWinstonLogger = function (logger) {
return {
debug: function (event) {
logger.debug(event);
},
info: function (event) {
logger.info(event);
},
warn: function (event) {
logger.warn(event);
},
error: function (event) {
logger.error(event);
},
profile: function (id) {
logger.profile(id);
},
extend: function (extraMeta) {
return loggerFromWinstonLogger(logger.child(extraMeta));
}
};
};
var createWinstonLogger = function (meta, level, transport) {
if (level === void 0) { level = "info"; }
if (transport === void 0) { transport = new winston_1.transports.Console(); }
var logger = winston_1.createLogger({
level: level,
transports: [transport],
format: winston_1.format.combine(withMetaData(meta), winston_1.format.timestamp(), winston_1.format.ms(), winston_1.format.errors({ stack: true }), winston_1.format.json())
});
return loggerFromWinstonLogger(logger);
};
exports.createDefaultLogger = createWinstonLogger;
exports.createLoggerFromContext = function (application, environment, level, creator) {
if (creator === void 0) { creator = exports.createDefaultLogger; }
return function (correlationRequestId) {
return creator({
application: application,
environment: environment,
correlationRequestId: correlationRequestId || "UNKNOWN/" + uuid_1.v4()
}, level);
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFvRTtBQUdwRSw2QkFBMEI7QUF1QmIsUUFBQSxnQkFBZ0IsR0FBRztJQUM5QixJQUFNLE1BQU0sR0FBYztRQUN4QixLQUFLLGdCQUFJLENBQUM7UUFDVixJQUFJLGdCQUFJLENBQUM7UUFDVCxJQUFJLGdCQUFJLENBQUM7UUFDVCxLQUFLLGdCQUFJLENBQUM7UUFDVixPQUFPLGdCQUFJLENBQUM7UUFDWixNQUFNO1lBQ0osT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixJQUFNLFlBQVksR0FBZSxnQkFBTSxDQUNyQyxVQUFDLElBQXVCLEVBQUUsSUFBb0I7SUFDNUMsNkJBQ0ssSUFBSSxHQUNKLElBQUksRUFDUDtBQUNKLENBQUMsQ0FDRixDQUFDO0FBRUYsSUFBTSx1QkFBdUIsR0FBRyxVQUM5QixNQUFzQjtJQUV0QixPQUFPO1FBQ0wsS0FBSyxFQUFMLFVBQU0sS0FBUTtZQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksRUFBSixVQUFLLEtBQVE7WUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEVBQUosVUFBSyxLQUFRO1lBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsS0FBSyxFQUFMLFVBQU0sS0FBUTtZQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sRUFBUCxVQUFRLEVBQVU7WUFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsTUFBTSxFQUFOLFVBQU8sU0FBaUI7WUFDdEIsT0FBTyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLG1CQUFtQixHQUFHLFVBQzFCLElBQW9CLEVBQ3BCLEtBQXNCLEVBQ3RCLFNBQStDO0lBRC9DLHNCQUFBLEVBQUEsY0FBc0I7SUFDdEIsMEJBQUEsRUFBQSxnQkFBMkIsb0JBQVUsQ0FBQyxPQUFPLEVBQUU7SUFFL0MsSUFBTSxNQUFNLEdBQUcsc0JBQVksQ0FBQztRQUMxQixLQUFLLE9BQUE7UUFDTCxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDdkIsTUFBTSxFQUFFLGdCQUFNLENBQUMsT0FBTyxDQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLEVBQ2xCLGdCQUFNLENBQUMsU0FBUyxFQUFFLEVBQ2xCLGdCQUFNLENBQUMsRUFBRSxFQUFFLEVBQ1gsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDOUIsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRVcsUUFBQSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztBQUUxQyxRQUFBLHVCQUF1QixHQUFHLFVBQ3JDLFdBQW1CLEVBQ25CLFdBQW1CLEVBQ25CLEtBQWEsRUFDYixPQUdvQztJQUhwQyx3QkFBQSxFQUFBLFVBR2lCLDJCQUFtQjtJQUNqQyxPQUFBLFVBQUMsb0JBQTZCO1FBQ2pDLE9BQUEsT0FBTyxDQUNMO1lBQ0UsV0FBVyxhQUFBO1lBQ1gsV0FBVyxhQUFBO1lBQ1gsb0JBQW9CLEVBQUUsb0JBQW9CLElBQUksYUFBVyxTQUFFLEVBQUk7U0FDaEUsRUFDRCxLQUFLLENBQ047SUFQRCxDQU9DO0FBUkUsQ0FRRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdpbnN0b24sIHsgY3JlYXRlTG9nZ2VyLCB0cmFuc3BvcnRzLCBmb3JtYXQgfSBmcm9tIFwid2luc3RvblwiO1xuaW1wb3J0IHsgVHJhbnNmb3JtYWJsZUluZm8sIEZvcm1hdFdyYXAgfSBmcm9tIFwibG9nZm9ybVwiO1xuaW1wb3J0IFRyYW5zcG9ydCBmcm9tIFwid2luc3Rvbi10cmFuc3BvcnRcIjtcbmltcG9ydCB7IHY0IH0gZnJvbSBcInV1aWRcIjtcblxudHlwZSBMb2dGdW5jdGlvbjxUPiA9IChldmVudDogVCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXI8VD4ge1xuICBkZWJ1ZzogTG9nRnVuY3Rpb248VD47XG4gIGluZm86IExvZ0Z1bmN0aW9uPFQ+O1xuICB3YXJuOiBMb2dGdW5jdGlvbjxUPjtcbiAgZXJyb3I6IExvZ0Z1bmN0aW9uPFQ+O1xuICBwcm9maWxlOiBMb2dGdW5jdGlvbjxzdHJpbmc+O1xuICBleHRlbmQ6IChleHRyYU1ldGE6IG9iamVjdCkgPT4gTG9nZ2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhhc0xvZ2dlcjxUPiB7XG4gIGxvZ2dlcjogTG9nZ2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlck1ldGFEYXRhIHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgY29ycmVsYXRpb25SZXF1ZXN0SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVOb29wTG9nZ2VyID0gPFQ+KCk6IExvZ2dlcjxUPiA9PiB7XG4gIGNvbnN0IGxvZ2dlcjogTG9nZ2VyPFQ+ID0ge1xuICAgIGRlYnVnKCkge30sXG4gICAgaW5mbygpIHt9LFxuICAgIHdhcm4oKSB7fSxcbiAgICBlcnJvcigpIHt9LFxuICAgIHByb2ZpbGUoKSB7fSxcbiAgICBleHRlbmQoKSB7XG4gICAgICByZXR1cm4gbG9nZ2VyO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxvZ2dlcjtcbn07XG5cbmNvbnN0IHdpdGhNZXRhRGF0YTogRm9ybWF0V3JhcCA9IGZvcm1hdChcbiAgKGluZm86IFRyYW5zZm9ybWFibGVJbmZvLCBtZXRhOiBMb2dnZXJNZXRhRGF0YSkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5tZXRhLFxuICAgICAgLi4uaW5mb1xuICAgIH07XG4gIH1cbik7XG5cbmNvbnN0IGxvZ2dlckZyb21XaW5zdG9uTG9nZ2VyID0gPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBsb2dnZXI6IHdpbnN0b24uTG9nZ2VyXG4pOiBMb2dnZXI8VD4gPT4ge1xuICByZXR1cm4ge1xuICAgIGRlYnVnKGV2ZW50OiBUKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXZlbnQpO1xuICAgIH0sXG4gICAgaW5mbyhldmVudDogVCkge1xuICAgICAgbG9nZ2VyLmluZm8oZXZlbnQpO1xuICAgIH0sXG4gICAgd2FybihldmVudDogVCkge1xuICAgICAgbG9nZ2VyLndhcm4oZXZlbnQpO1xuICAgIH0sXG4gICAgZXJyb3IoZXZlbnQ6IFQpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihldmVudCk7XG4gICAgfSxcbiAgICBwcm9maWxlKGlkOiBzdHJpbmcpIHtcbiAgICAgIGxvZ2dlci5wcm9maWxlKGlkKTtcbiAgICB9LFxuICAgIGV4dGVuZChleHRyYU1ldGE6IG9iamVjdCkge1xuICAgICAgcmV0dXJuIGxvZ2dlckZyb21XaW5zdG9uTG9nZ2VyKGxvZ2dlci5jaGlsZChleHRyYU1ldGEpKTtcbiAgICB9XG4gIH07XG59O1xuXG5jb25zdCBjcmVhdGVXaW5zdG9uTG9nZ2VyID0gPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBtZXRhOiBMb2dnZXJNZXRhRGF0YSxcbiAgbGV2ZWw6IHN0cmluZyA9IFwiaW5mb1wiLFxuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydCA9IG5ldyB0cmFuc3BvcnRzLkNvbnNvbGUoKVxuKTogTG9nZ2VyPFQ+ID0+IHtcbiAgY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKHtcbiAgICBsZXZlbCxcbiAgICB0cmFuc3BvcnRzOiBbdHJhbnNwb3J0XSxcbiAgICBmb3JtYXQ6IGZvcm1hdC5jb21iaW5lKFxuICAgICAgd2l0aE1ldGFEYXRhKG1ldGEpLFxuICAgICAgZm9ybWF0LnRpbWVzdGFtcCgpLFxuICAgICAgZm9ybWF0Lm1zKCksXG4gICAgICBmb3JtYXQuZXJyb3JzKHsgc3RhY2s6IHRydWUgfSksXG4gICAgICBmb3JtYXQuanNvbigpXG4gICAgKVxuICB9KTtcblxuICByZXR1cm4gbG9nZ2VyRnJvbVdpbnN0b25Mb2dnZXIobG9nZ2VyKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0TG9nZ2VyID0gY3JlYXRlV2luc3RvbkxvZ2dlcjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxvZ2dlckZyb21Db250ZXh0ID0gPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBhcHBsaWNhdGlvbjogc3RyaW5nLFxuICBlbnZpcm9ubWVudDogc3RyaW5nLFxuICBsZXZlbDogc3RyaW5nLFxuICBjcmVhdG9yOiAoXG4gICAgbWV0YTogTG9nZ2VyTWV0YURhdGEsXG4gICAgbGV2ZWw6IHN0cmluZ1xuICApID0+IExvZ2dlcjxUPiA9IGNyZWF0ZURlZmF1bHRMb2dnZXJcbikgPT4gKGNvcnJlbGF0aW9uUmVxdWVzdElkPzogc3RyaW5nKSA9PlxuICBjcmVhdG9yKFxuICAgIHtcbiAgICAgIGFwcGxpY2F0aW9uLFxuICAgICAgZW52aXJvbm1lbnQsXG4gICAgICBjb3JyZWxhdGlvblJlcXVlc3RJZDogY29ycmVsYXRpb25SZXF1ZXN0SWQgfHwgYFVOS05PV04vJHt2NCgpfWBcbiAgICB9LFxuICAgIGxldmVsXG4gICk7XG4iXX0=