@loopback/logging
Version:
An extension exposes logging for Winston and Fluentd with LoopBack 4
57 lines • 2.55 kB
JavaScript
;
// Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
// Node module: @loopback/logging
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
Object.defineProperty(exports, "__esModule", { value: true });
exports.WinstonLoggerProvider = exports.WINSTON_FORMAT = exports.WINSTON_TRANSPORT = exports.WinstonTransports = exports.WinstonLogger = exports.format = exports.WinstonFormat = void 0;
const tslib_1 = require("tslib");
const core_1 = require("@loopback/core");
const winston_1 = require("winston");
/**
* Re-export logform/winston types
*/
var logform_1 = require("logform");
Object.defineProperty(exports, "WinstonFormat", { enumerable: true, get: function () { return logform_1.Format; } });
var winston_2 = require("winston");
Object.defineProperty(exports, "format", { enumerable: true, get: function () { return winston_2.format; } });
Object.defineProperty(exports, "WinstonLogger", { enumerable: true, get: function () { return winston_2.Logger; } });
Object.defineProperty(exports, "WinstonTransports", { enumerable: true, get: function () { return winston_2.transports; } });
/**
* An extension point for winston transports
*/
exports.WINSTON_TRANSPORT = 'logging.winston.transport';
/**
* An extension point for winston formats
*/
exports.WINSTON_FORMAT = 'logging.winston.format';
/**
* A provider class that creates WinstonLogger instances
*/
let WinstonLoggerProvider = class WinstonLoggerProvider {
constructor(transports, formats, options = {}) {
this.transports = transports;
this.formats = formats;
this.options = options;
}
async value() {
let transports = await this.transports();
if (transports.length === 0) {
transports = [new winston_1.transports.Console({})];
}
const formats = await this.formats();
return (0, winston_1.createLogger)({
transports,
format: winston_1.format.combine(...formats),
...this.options,
});
}
};
exports.WinstonLoggerProvider = WinstonLoggerProvider;
exports.WinstonLoggerProvider = WinstonLoggerProvider = tslib_1.__decorate([
tslib_1.__param(0, (0, core_1.extensions)(exports.WINSTON_TRANSPORT)),
tslib_1.__param(1, (0, core_1.extensions)(exports.WINSTON_FORMAT)),
tslib_1.__param(2, (0, core_1.config)()),
tslib_1.__metadata("design:paramtypes", [Function, Function, Object])
], WinstonLoggerProvider);
//# sourceMappingURL=winston.js.map