Merged in feature/wrap-logging (pull request #2511)
Feature/wrap logging * feat: change all logging to go through our own logger function so that we can control log levels * move packages/trpc to using our own logger * merge Approved-by: Linus Flood
This commit is contained in:
44
packages/common/logger/createLogger.ts
Normal file
44
packages/common/logger/createLogger.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
const asyncWrapper: () => Promise<string> =
|
||||
typeof loggerPrefix === "string" ? async () => loggerPrefix : loggerPrefix
|
||||
|
||||
const getLoggerPrefix = async () => {
|
||||
const prefix = await asyncWrapper()
|
||||
if (!prefix) {
|
||||
return ""
|
||||
}
|
||||
|
||||
return `[${prefix}]`
|
||||
}
|
||||
|
||||
return {
|
||||
async debug(message: string, ...args: unknown[]): Promise<void> {
|
||||
// TODO: Make this configurable
|
||||
if (process.env.NODE_ENV !== "development") {
|
||||
return
|
||||
}
|
||||
|
||||
console.debug(
|
||||
"\x1b[36m%s\x1b[0m",
|
||||
`${await getLoggerPrefix()} ${message}`.trim(),
|
||||
...args
|
||||
)
|
||||
},
|
||||
|
||||
async info(message: string, ...args: unknown[]): Promise<void> {
|
||||
console.info(`${await getLoggerPrefix()} ${message}`.trim(), ...args)
|
||||
},
|
||||
async warn(message: string, ...args: unknown[]): Promise<void> {
|
||||
console.warn(
|
||||
`${await getLoggerPrefix()} [warn] - ${message}`.trim(),
|
||||
...args
|
||||
)
|
||||
},
|
||||
async error(message: string, ...args: unknown[]): Promise<void> {
|
||||
console.error(
|
||||
`${await getLoggerPrefix()} [error] - ${message}`.trim(),
|
||||
...args
|
||||
)
|
||||
},
|
||||
}
|
||||
}
|
||||
3
packages/common/logger/index.ts
Normal file
3
packages/common/logger/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { createLogger } from "./createLogger"
|
||||
|
||||
export const logger = createLogger("")
|
||||
Reference in New Issue
Block a user