UNPKG

filebeat-logger

Version:

A winston logger that prints json lines in elastic common schema format

34 lines 4.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Transport = void 0; const WinstonTransport = require("winston-transport"); const winston_1 = require("winston"); const utils_1 = require("./utils"); const options_1 = require("./options"); class Transport extends WinstonTransport { constructor(optOptions) { super(); const options = { ...(0, options_1.optionDefaults)(), ...optOptions }; this.stderrLevels = options.stderrLevels; this.format = (0, winston_1.format)(function (info) { if (options.printTimestamp) { utils_1.Utils.addTimestamp(info); } utils_1.Utils.addLogLevel(info); utils_1.Utils.addEnvironmentTag(info, options.appEnvironment); utils_1.Utils.expandError(info); utils_1.Utils.expandRequest(info); utils_1.Utils.expandResponse(info); utils_1.Utils.explodeJsonInMessage(info); utils_1.Utils.orderKeys(info, options.keysOrder); return info; })(); } log(info, next) { const stream = this.stderrLevels.includes(info["log.level"]) ? process.stderr : process.stdout; stream.write(JSON.stringify(info) + "\n"); next(); } } exports.Transport = Transport; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidHJhbnNwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFzRDtBQUN0RCxxQ0FBK0I7QUFDL0IsbUNBQThCO0FBQzlCLHVDQUFrRDtBQUVsRCxNQUFhLFNBQVUsU0FBUSxnQkFBZ0I7SUFJM0MsWUFBWSxVQUFvQjtRQUM1QixLQUFLLEVBQUUsQ0FBQztRQUVSLE1BQU0sT0FBTyxHQUFHLEVBQUMsR0FBRyxJQUFBLHdCQUFjLEdBQUUsRUFBRSxHQUFHLFVBQVUsRUFBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUV6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUEsZ0JBQU0sRUFBQyxVQUFVLElBQUk7WUFDL0IsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pCLGFBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELGFBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsYUFBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdEQsYUFBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixhQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLGFBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsYUFBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLGFBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUE2QixFQUFFLElBQWdCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQy9GLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLEVBQUUsQ0FBQztJQUNYLENBQUM7Q0FDSjtBQS9CRCw4QkErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBXaW5zdG9uVHJhbnNwb3J0IGZyb20gXCJ3aW5zdG9uLXRyYW5zcG9ydFwiO1xuaW1wb3J0IHtmb3JtYXR9IGZyb20gXCJ3aW5zdG9uXCI7XG5pbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHtPcHRpb25zLCBvcHRpb25EZWZhdWx0c30gZnJvbSBcIi4vb3B0aW9uc1wiO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNwb3J0IGV4dGVuZHMgV2luc3RvblRyYW5zcG9ydCB7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0ZGVyckxldmVsczogc3RyaW5nW107XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRPcHRpb25zPzogT3B0aW9ucykge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Li4ub3B0aW9uRGVmYXVsdHMoKSwgLi4ub3B0T3B0aW9uc307XG5cbiAgICAgICAgdGhpcy5zdGRlcnJMZXZlbHMgPSBvcHRpb25zLnN0ZGVyckxldmVscztcblxuICAgICAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiAoaW5mbykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucHJpbnRUaW1lc3RhbXApIHtcbiAgICAgICAgICAgICAgICBVdGlscy5hZGRUaW1lc3RhbXAoaW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBVdGlscy5hZGRMb2dMZXZlbChpbmZvKTtcbiAgICAgICAgICAgIFV0aWxzLmFkZEVudmlyb25tZW50VGFnKGluZm8sIG9wdGlvbnMuYXBwRW52aXJvbm1lbnQpO1xuICAgICAgICAgICAgVXRpbHMuZXhwYW5kRXJyb3IoaW5mbyk7XG4gICAgICAgICAgICBVdGlscy5leHBhbmRSZXF1ZXN0KGluZm8pO1xuICAgICAgICAgICAgVXRpbHMuZXhwYW5kUmVzcG9uc2UoaW5mbyk7XG4gICAgICAgICAgICBVdGlscy5leHBsb2RlSnNvbkluTWVzc2FnZShpbmZvKTtcbiAgICAgICAgICAgIFV0aWxzLm9yZGVyS2V5cyhpbmZvLCBvcHRpb25zLmtleXNPcmRlcik7XG4gICAgICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgICAgfSkoKTtcbiAgICB9XG5cbiAgICBsb2coaW5mbzogeyBcImxvZy5sZXZlbFwiOiBzdHJpbmcgfSwgbmV4dDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSB0aGlzLnN0ZGVyckxldmVscy5pbmNsdWRlcyhpbmZvW1wibG9nLmxldmVsXCJdKSA/IHByb2Nlc3Muc3RkZXJyIDogcHJvY2Vzcy5zdGRvdXQ7XG4gICAgICAgIHN0cmVhbS53cml0ZShKU09OLnN0cmluZ2lmeShpbmZvKSArIFwiXFxuXCIpO1xuICAgICAgICBuZXh0KCk7XG4gICAgfVxufVxuIl19