From 9f7a4166aa8a52416b91ed09d8b12c7100402148 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 11 Feb 2025 12:31:44 -0600 Subject: [PATCH] Fix imports, simplify transports config --- src/logger/__tests__/logDump.test.ts | 3 ++ src/logger/bitdriftTransport.ts | 3 +- src/logger/index.ts | 45 +++++++++++----------------- src/logger/types.ts | 2 +- 4 files changed, 24 insertions(+), 29 deletions(-) diff --git a/src/logger/__tests__/logDump.test.ts b/src/logger/__tests__/logDump.test.ts index 135998223d..704413f7f3 100644 --- a/src/logger/__tests__/logDump.test.ts +++ b/src/logger/__tests__/logDump.test.ts @@ -8,6 +8,7 @@ test('works', () => { { id: '1', level: LogLevel.Debug, + context: 'convo', message: 'hello', metadata: {}, timestamp: Date.now(), @@ -15,6 +16,7 @@ test('works', () => { { id: '2', level: LogLevel.Debug, + context: 'convo', message: 'hello', metadata: {}, timestamp: Date.now(), @@ -22,6 +24,7 @@ test('works', () => { { id: '3', level: LogLevel.Debug, + context: 'convo', message: 'hello', metadata: {}, timestamp: Date.now(), diff --git a/src/logger/bitdriftTransport.ts b/src/logger/bitdriftTransport.ts index 159b863004..a74e68e34c 100644 --- a/src/logger/bitdriftTransport.ts +++ b/src/logger/bitdriftTransport.ts @@ -15,7 +15,8 @@ export function createBitdriftTransport(): Transport { [LogLevel.Error]: bdError, } as const - return (level, message) => { + // TODO + return (level, _context, message) => { const log = logFunctions[level] log('' + message) } diff --git a/src/logger/index.ts b/src/logger/index.ts index a3175e1257..b4497fa81b 100644 --- a/src/logger/index.ts +++ b/src/logger/index.ts @@ -134,6 +134,20 @@ export const sentryTransport: Transport = ( } } +const transports: Transport[] = (function configureTransports() { + switch (process.env.NODE_ENV) { + case 'production': { + return [sentryTransport, createBitdriftTransport()] + } + case 'test': { + return [] + } + default: { + return [consoleTransport] + } + } +})() + const queuedMessages: [string, Parameters[1]][] = [] let sentrySendTimeout: ReturnType | null = null @@ -161,13 +175,12 @@ function sendQueuedMessages() { } export class Logger { - Level = LogLevel - Context = LogContext + static Level = LogLevel + static Context = LogContext level: LogLevel context: keyof typeof LogContext | undefined = undefined contextFilter: string = '' - transports: Transport[] = [] protected debugContextRegexes: RegExp[] = [] @@ -218,19 +231,13 @@ export class Logger { this.transport(LogLevel.Error, error, metadata) } - addTransport(transport: Transport) { - this.transports.push(transport) - return () => { - this.transports.splice(this.transports.indexOf(transport), 1) - } - } - protected transport( level: LogLevel, message: string | Error, metadata: Metadata = {}, ) { if ( + !!this.contextFilter && !!this.context && !this.debugContextRegexes.find(reg => reg.test(this.context!)) ) @@ -251,7 +258,7 @@ export class Logger { if (!enabledLogLevels[this.level].includes(level)) return - for (const transport of this.transports) { + for (const transport of transports) { transport(level, this.context, message, meta, timestamp) } } @@ -270,19 +277,3 @@ export class Logger { * `logger.enable()` */ export const logger = new Logger() - -if (process.env.NODE_ENV !== 'test') { - logger.addTransport(createBitdriftTransport()) -} - -if (process.env.NODE_ENV !== 'test') { - if (__DEV__) { - logger.addTransport(consoleTransport) - /* - * Comment this out to enable Sentry transport in dev - */ - // logger.addTransport(sentryTransport) - } else { - logger.addTransport(sentryTransport) - } -} diff --git a/src/logger/types.ts b/src/logger/types.ts index fc0b9e4ffa..24b5501532 100644 --- a/src/logger/types.ts +++ b/src/logger/types.ts @@ -1,4 +1,4 @@ -import {LogContext} from '#/logger/debugContext' +import {LogContext} from '#/logger/logContext' import type {Sentry} from '#/logger/sentry' export enum LogLevel {