From cb1c2781c053c293c40259e4305a533a343a7393 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 14 Dec 2022 17:20:20 +0100 Subject: [PATCH] backend-plugin-api: update logger interface with more methods and meta MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Co-authored-by: Johan Haals Signed-off-by: Patrik Oldsberg --- .changeset/chilly-bees-dream.md | 5 +++++ .changeset/wicked-paws-help.md | 5 +++++ .../implementations/rootLoggerService.ts | 21 +++++++++++++++---- .../src/services/definitions/index.ts | 2 +- .../services/definitions/loggerServiceRef.ts | 13 ++++++++++-- 5 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 .changeset/chilly-bees-dream.md create mode 100644 .changeset/wicked-paws-help.md diff --git a/.changeset/chilly-bees-dream.md b/.changeset/chilly-bees-dream.md new file mode 100644 index 0000000000..34e401a199 --- /dev/null +++ b/.changeset/chilly-bees-dream.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Updated logger implementations to match interface changes. diff --git a/.changeset/wicked-paws-help.md b/.changeset/wicked-paws-help.md new file mode 100644 index 0000000000..8fbba71662 --- /dev/null +++ b/.changeset/wicked-paws-help.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Updated `LoggerService` interface with more log methods and meta. diff --git a/packages/backend-app-api/src/services/implementations/rootLoggerService.ts b/packages/backend-app-api/src/services/implementations/rootLoggerService.ts index 064091a122..54d40b6a12 100644 --- a/packages/backend-app-api/src/services/implementations/rootLoggerService.ts +++ b/packages/backend-app-api/src/services/implementations/rootLoggerService.ts @@ -20,6 +20,7 @@ import { LoggerService, coreServices, } from '@backstage/backend-plugin-api'; +import { LogMeta } from '@backstage/backend-plugin-api'; import { Logger as WinstonLogger } from 'winston'; class BackstageLogger implements LoggerService { @@ -29,12 +30,24 @@ class BackstageLogger implements LoggerService { private constructor(private readonly winston: WinstonLogger) {} - info(message: string, ...meta: any[]): void { - this.winston.info(message, ...meta); + error(message: string, meta?: LogMeta): void { + this.winston.error(message, meta); } - child(fields: { [name: string]: string }): LoggerService { - return new BackstageLogger(this.winston.child(fields)); + warn(message: string, meta?: LogMeta): void { + this.winston.warn(message, meta); + } + + info(message: string, meta?: LogMeta): void { + this.winston.info(message, meta); + } + + debug(message: string, meta?: LogMeta): void { + this.winston.debug(message, meta); + } + + child(meta: LogMeta): LoggerService { + return new BackstageLogger(this.winston.child(meta)); } } diff --git a/packages/backend-plugin-api/src/services/definitions/index.ts b/packages/backend-plugin-api/src/services/definitions/index.ts index e2f361ff01..3cf2ab4c77 100644 --- a/packages/backend-plugin-api/src/services/definitions/index.ts +++ b/packages/backend-plugin-api/src/services/definitions/index.ts @@ -26,7 +26,7 @@ export type { LifecycleService, LifecycleServiceShutdownHook, } from './lifecycleServiceRef'; -export type { LoggerService } from './loggerServiceRef'; +export type { LoggerService, LogMeta } from './loggerServiceRef'; export type { PermissionsService } from './permissionsServiceRef'; export type { PluginMetadataService } from './pluginMetadataServiceRef'; export type { RootLoggerService } from './rootLoggerServiceRef'; diff --git a/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts b/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts index b135ccc8e6..179e97a84b 100644 --- a/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts +++ b/packages/backend-plugin-api/src/services/definitions/loggerServiceRef.ts @@ -16,12 +16,21 @@ import { createServiceRef } from '../system/types'; +/** + * @public + */ +export type LogMeta = Error | { [name: string]: any }; + /** * @public */ export interface LoggerService { - info(message: string): void; - child(fields: { [name: string]: string }): LoggerService; + error(message: string, meta?: LogMeta): void; + warn(message: string, meta?: LogMeta): void; + info(message: string, meta?: LogMeta): void; + debug(message: string, meta?: LogMeta): void; + + child(meta: LogMeta): LoggerService; } /**