@loopback/logging
Version:
An extension exposes logging for Winston and Fluentd with LoopBack 4
64 lines • 2.82 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.FluentTransportProvider = exports.FluentSenderProvider = exports.FluentSender = void 0;
const tslib_1 = require("tslib");
const core_1 = require("@loopback/core");
const fluent_logger_1 = tslib_1.__importStar(require("fluent-logger"));
const keys_1 = require("./keys");
var fluent_logger_2 = require("fluent-logger");
Object.defineProperty(exports, "FluentSender", { enumerable: true, get: function () { return fluent_logger_2.FluentSender; } });
/**
* Provider for FluentSender
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let FluentSenderProvider = class FluentSenderProvider {
constructor(getFluentConfig) {
this.getFluentConfig = getFluentConfig;
}
async value() {
const options = await this.getFluentConfig();
if (options == null) {
throw new Error(`Fluent is not configured. Please configure ${this.binding.key}.`);
}
return (0, fluent_logger_1.createFluentSender)('LoopBack', options);
}
};
exports.FluentSenderProvider = FluentSenderProvider;
tslib_1.__decorate([
core_1.inject.binding(),
tslib_1.__metadata("design:type", core_1.Binding)
], FluentSenderProvider.prototype, "binding", void 0);
exports.FluentSenderProvider = FluentSenderProvider = tslib_1.__decorate([
tslib_1.__param(0, core_1.config.getter()),
tslib_1.__metadata("design:paramtypes", [Function])
], FluentSenderProvider);
/**
* Provider to create FluentTransport for Winston
*/
let FluentTransportProvider = class FluentTransportProvider {
constructor(getFluentConfig) {
this.getFluentConfig = getFluentConfig;
}
async value() {
const options = await this.getFluentConfig();
if (options == null) {
throw new Error(`Fluent is not configured. Please configure ${this.binding.key}.`);
}
const winstonTransportClass = fluent_logger_1.default.support.winstonTransport();
return new winstonTransportClass('LoopBack', options);
}
};
exports.FluentTransportProvider = FluentTransportProvider;
tslib_1.__decorate([
core_1.inject.binding(),
tslib_1.__metadata("design:type", core_1.Binding)
], FluentTransportProvider.prototype, "binding", void 0);
exports.FluentTransportProvider = FluentTransportProvider = tslib_1.__decorate([
tslib_1.__param(0, core_1.config.getter({ fromBinding: keys_1.LoggingBindings.FLUENT_SENDER })),
tslib_1.__metadata("design:paramtypes", [Function])
], FluentTransportProvider);
//# sourceMappingURL=fluent.js.map