mirror of
https://github.com/pockethost/pockethost.git
synced 2025-11-23 22:15:49 +00:00
refactor(pockethost): simplify ConsoleLogger by removing unused prefix and optimizing breadcrumb handling
This commit is contained in:
parent
8ec5d00df4
commit
01540dad27
@ -11,58 +11,59 @@ const CONSOLE_METHODS = {
|
||||
}
|
||||
|
||||
export function ConsoleLogger(initialConfig: Partial<LoggerConfig> = {}): Logger {
|
||||
let config: LoggerConfig = {
|
||||
const config: LoggerConfig = {
|
||||
level: LogLevelName.Info,
|
||||
pfx: [],
|
||||
breadcrumbs: [],
|
||||
context: {},
|
||||
...initialConfig,
|
||||
}
|
||||
|
||||
const { breadcrumbs, context } = config
|
||||
|
||||
function log(level: LogLevelName, args: any[]) {
|
||||
if (isLevelGte(level, config.level)) {
|
||||
const prefix = config.pfx.length > 0 ? `[${config.pfx.join(':')}] ` : ''
|
||||
CONSOLE_METHODS[level](`${prefix}${level.toUpperCase()}:`, ...args)
|
||||
CONSOLE_METHODS[level](`[${level.toUpperCase()}]`, ...withBreadcrumbs(args))
|
||||
}
|
||||
}
|
||||
|
||||
const breadcrumbs: string[] = []
|
||||
const context: Record<string, string | number | undefined> = {}
|
||||
const withBreadcrumbs = (args: any[]) => {
|
||||
return [breadcrumbs.map((b) => `[${b}]`).join(' '), ...args]
|
||||
}
|
||||
|
||||
const logger: Logger = {
|
||||
raw(...args: any[]) {
|
||||
log(LogLevelName.Raw, withBreadcrumbs(args))
|
||||
log(LogLevelName.Raw, args)
|
||||
},
|
||||
trace(...args: any[]) {
|
||||
log(LogLevelName.Trace, withBreadcrumbs(args))
|
||||
log(LogLevelName.Trace, args)
|
||||
},
|
||||
debug(...args: any[]) {
|
||||
log(LogLevelName.Debug, withBreadcrumbs(args))
|
||||
log(LogLevelName.Debug, args)
|
||||
},
|
||||
dbg(...args: any[]) {
|
||||
logger.debug(...args)
|
||||
},
|
||||
info(...args: any[]) {
|
||||
log(LogLevelName.Info, withBreadcrumbs(args))
|
||||
log(LogLevelName.Info, args)
|
||||
},
|
||||
warn(...args: any[]) {
|
||||
log(LogLevelName.Warn, withBreadcrumbs(args))
|
||||
log(LogLevelName.Warn, args)
|
||||
},
|
||||
error(...args: any[]) {
|
||||
log(LogLevelName.Error, withBreadcrumbs(args))
|
||||
log(LogLevelName.Error, args)
|
||||
},
|
||||
criticalError(...args: any[]) {
|
||||
logger.error('CRITICAL:', withBreadcrumbs(args))
|
||||
logger.error('CRITICAL:', args)
|
||||
},
|
||||
create(name: string, configOverride?: Partial<LoggerConfig>): Logger {
|
||||
const newBreadcrumbs = [...breadcrumbs]
|
||||
if (!newBreadcrumbs.includes(name)) {
|
||||
newBreadcrumbs.push(name)
|
||||
}
|
||||
const newConfig = {
|
||||
...config,
|
||||
breadcrumbs: [...breadcrumbs, name],
|
||||
breadcrumbs: newBreadcrumbs,
|
||||
context: { ...context },
|
||||
pfx: [...config.pfx, name],
|
||||
logger: logger,
|
||||
...configOverride,
|
||||
}
|
||||
@ -72,7 +73,9 @@ export function ConsoleLogger(initialConfig: Partial<LoggerConfig> = {}): Logger
|
||||
return logger.create(name)
|
||||
},
|
||||
breadcrumb(s: string): Logger {
|
||||
if (!breadcrumbs.includes(s)) {
|
||||
breadcrumbs.push(s)
|
||||
}
|
||||
return logger
|
||||
},
|
||||
context(name: string | object, value?: string | number): Logger {
|
||||
|
||||
@ -3,7 +3,6 @@ import { ConsoleLogger } from './ConsoleLogger'
|
||||
|
||||
export type LoggerConfig = {
|
||||
level: LogLevelName
|
||||
pfx: string[]
|
||||
breadcrumbs: string[]
|
||||
context: Record<string, LoggerContextValue>
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user