Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions src/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import type winston from 'winston';
import { createLogger, format, transports } from 'winston';
import { getHookCorrelationId } from './hooks';


type Severity = 'debug' | 'info' | 'http' | 'warn' | 'error';

export class WinstonLogger {
Expand Down Expand Up @@ -38,14 +37,27 @@ export class WinstonLogger {
}

export class Logger {
private static loggerInstance = WinstonLogger.getInstance();
private static loggerInstance: winston.Logger | undefined;

private constructor() { }

static initialize(serviceName: string) {
if (this.loggerInstance) return;
this.loggerInstance = WinstonLogger.getInstance(serviceName);
}

private static getLogger() {
if (!this.loggerInstance) throw new Error('Logger not initialized');
return this.loggerInstance;
}

static log(
private static log(
severity: Severity,
message: string,
meta?: Record<string, unknown>,
err?: unknown
) {
const logger = this.getLogger();
const errorMsg = err instanceof Error ? `Error: ${err.message}` : '';
const errObject = err instanceof Error ?
{
Expand All @@ -58,7 +70,7 @@ export class Logger {
const correlationId = getHookCorrelationId();
const logMessage = `${message}. ${errorMsg}`;
const metaObj = { ...meta, err: errObject, correlationId };
this.loggerInstance.log(severity, logMessage, metaObj);
logger.log(severity, logMessage, metaObj);
}

static debug(message: string, meta?: Record<string, unknown>, err?: unknown) {
Expand Down