From a741126f15a8b38e21cfacf76e3e9f1526692ad6 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 28 Feb 2024 13:36:14 +0100 Subject: [PATCH] feat: make some of the WinstonLogger options optional Signed-off-by: blam --- packages/backend-app-api/api-report.md | 6 +++--- .../src/logging/WinstonLogger.ts | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 52780c6729..128b303aed 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -365,12 +365,12 @@ export class WinstonLogger implements RootLoggerService { // @public (undocumented) export interface WinstonLoggerOptions { // (undocumented) - format: Format; + format?: Format; // (undocumented) - level: string; + level?: string; // (undocumented) meta?: JsonObject; // (undocumented) - transports: transport[]; + transports?: transport[]; } ``` diff --git a/packages/backend-app-api/src/logging/WinstonLogger.ts b/packages/backend-app-api/src/logging/WinstonLogger.ts index 7dd0ed80b0..65b9b8981a 100644 --- a/packages/backend-app-api/src/logging/WinstonLogger.ts +++ b/packages/backend-app-api/src/logging/WinstonLogger.ts @@ -34,9 +34,9 @@ import { escapeRegExp } from '../lib/escapeRegExp'; */ export interface WinstonLoggerOptions { meta?: JsonObject; - level: string; - format: Format; - transports: Transport[]; + level?: string; + format?: Format; + transports?: Transport[]; } /** @@ -53,12 +53,20 @@ export class WinstonLogger implements RootLoggerService { */ static create(options: WinstonLoggerOptions): WinstonLogger { const redacter = WinstonLogger.redacter(); + const defaultFormatter = + process.env.NODE_ENV === 'production' + ? format.json() + : WinstonLogger.colorFormat(); let logger = createLogger({ - level: options.level, - format: format.combine(redacter.format, options.format), + level: process.env.LOG_LEVEL ?? options.level ?? 'info', + format: format.combine( + redacter.format, + options.format ?? defaultFormatter, + ), transports: options.transports ?? new transports.Console(), }); + if (options.meta) { logger = logger.child(options.meta); }