UNPKG

nestjs-context-winston

Version:

Contextual Logger for nestjs apps using AsyncLocalStorage and winston

65 lines 2.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContextLoggingModule = void 0; const core_1 = require("@nestjs/core"); const logger_factory_1 = require("./logger-factory"); const logger_context_guard_1 = require("./logger-context-guard"); const request_logger_interceptor_1 = require("./request-logger.interceptor"); const context_nest_logger_1 = require("./context-nest-logger"); const context_filters_map_1 = require("./context-filters-map"); const internal_1 = require("./internal"); const nestjs_context_logger_middleware_1 = require("./nestjs-context-logger.middleware"); class ContextLoggingModule { static forRoot(options) { const { logClass } = options; const logger = (0, logger_factory_1.loggerFactory)(options); const nestLogger = new context_nest_logger_1.ContextNestLogger(logger); const clonedOptions = { ...options, }; const middleware = new nestjs_context_logger_middleware_1.NestJsContextLoggerMiddleware(logger, options); return { module: ContextLoggingModule, nestLogger, logger, middleware: middleware.use.bind(middleware), providers: [ { provide: logClass, useValue: logger, }, { provide: context_nest_logger_1.ContextNestLogger, useValue: nestLogger, }, { provide: core_1.APP_GUARD, useFactory: () => new logger_context_guard_1.ContextLoggerContextGuard(logger, clonedOptions), }, ...((options.useLogInterceptor ?? true) ? [ { provide: core_1.APP_INTERCEPTOR, useFactory: () => new request_logger_interceptor_1.RequestLoggerInterceptor(logger, clonedOptions), }, ] : []), ...(options.contextData?.map((cls) => ({ provide: cls, useValue: (0, internal_1.getContextProxy)(cls), })) ?? []), ], exports: [logClass, context_nest_logger_1.ContextNestLogger, ...(options.contextData ?? [])], excludeFilter(excludedFilter) { const newFilter = context_filters_map_1.contextFilters.exclude(excludedFilter); if (clonedOptions.contextFilter) { clonedOptions.contextFilter = context_filters_map_1.contextFilters.and(newFilter); } else clonedOptions.contextFilter = newFilter; }, }; } } exports.ContextLoggingModule = ContextLoggingModule; //# sourceMappingURL=context-logging.module.js.map