Fix imports, simplify transports config

This commit is contained in:
Eric Bailey
2025-02-11 12:31:44 -06:00
parent 5df4ded61e
commit 9f7a4166aa
4 changed files with 24 additions and 29 deletions
+3
View File
@@ -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(),
+2 -1
View File
@@ -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)
}
+18 -27
View File
@@ -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<typeof Sentry.captureMessage>[1]][] =
[]
let sentrySendTimeout: ReturnType<typeof setTimeout> | 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)
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
import {LogContext} from '#/logger/debugContext'
import {LogContext} from '#/logger/logContext'
import type {Sentry} from '#/logger/sentry'
export enum LogLevel {