Merged in feat/sw-3560-sanitize2 (pull request #3001)
feat(SW-3560): send parameters to sentry logs * feat(SW-3560): send parameters to sentry logs * Use flatten instead of sanitize when logging Approved-by: Joakim Jäderberg
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import * as Sentry from "@sentry/nextjs"
|
||||
import { flatten } from "flat"
|
||||
|
||||
const logLevels = ["debug", "info", "warn", "error"] as const
|
||||
const minimumLogLevel = (() => {
|
||||
@@ -23,6 +24,19 @@ function shouldLog(level: (typeof logLevels)[number]) {
|
||||
return logLevels.indexOf(level) >= logLevels.indexOf(minimumLogLevel)
|
||||
}
|
||||
|
||||
function getLogValue(args: unknown[]): Record<string, unknown> | undefined {
|
||||
if (!args || args.length === 0) {
|
||||
return undefined
|
||||
}
|
||||
if (args.length === 1 && typeof args[0] === "object") {
|
||||
return (args[0] as Record<string, unknown>) ?? undefined
|
||||
}
|
||||
if (args.length === 1) {
|
||||
return { value: args[0] }
|
||||
}
|
||||
return flatten(args)
|
||||
}
|
||||
|
||||
export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
const asyncWrapper: () => Promise<string> =
|
||||
typeof loggerPrefix === "string" ? async () => loggerPrefix : loggerPrefix
|
||||
@@ -45,9 +59,12 @@ export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
return
|
||||
}
|
||||
|
||||
Sentry.logger[level](`${await getLoggerPrefix()} ${message}`.trim(), {
|
||||
...args,
|
||||
})
|
||||
const logValue = getLogValue(args)
|
||||
|
||||
Sentry.logger[level](
|
||||
`${await getLoggerPrefix()} ${message}`.trim(),
|
||||
logValue
|
||||
)
|
||||
console[level](`${await getLoggerPrefix()} ${message}`.trim(), ...args)
|
||||
}
|
||||
|
||||
@@ -55,7 +72,6 @@ export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
async debug(message: string, ...args: unknown[]): Promise<void> {
|
||||
await log("debug", message, ...args)
|
||||
},
|
||||
|
||||
async info(message: string, ...args: unknown[]): Promise<void> {
|
||||
await log("info", message, ...args)
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user