UNPKG

@genie-solutions/genie-logger

Version:

Reusable Node.js logger for platform Lambda services.

75 lines 8.38 kB
"use strict"; 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=