diff --git a/.changeset/long-kings-call.md b/.changeset/long-kings-call.md new file mode 100644 index 0000000000..14d57fc9ca --- /dev/null +++ b/.changeset/long-kings-call.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Provide some sane defaults for `WinstonLogger.create` making some of the arguments optional diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index cb83aaf196..63f43eff2e 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -367,12 +367,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..8a3eb28100 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); }