Merged in feature/SW-3149-send-logs-to-sentry (pull request #2802)
Feature/SW-3149 send logs to sentry * Use sentry for logging * . * fix(SW-3149) Send logs to Sentry * remove experimental flag for logs * add sentry settings for partner-sas * feat(SW-3108): Added external link option to top primary button on content/collection page Approved-by: Matilda Landström * fix(BOOK-152): Removed old header references inside useStickyPosition hook to fix offset issue for the sitewide alert Approved-by: Matilda Landström * Merged in fix/LOY-360-team-member-text-for-retired-employees (pull request #2799) fix(LOY-360): improve text for retired employees * fix(LOY-360): improve text for retired employees Approved-by: Erik Tiekstra Approved-by: Matilda Landström * Merged in fix/STAY-67-redirect-to-webview-after-gla (pull request #2795) fix(STAY-67): redirect to webview after guarantee on my stay * fix(STAY-67): redirect to webview after guarantee on my stay * fix(STAY-67): add callback page for guarantee on webview Approved-by: Linus Flood * feat(SW-3152): Respecting image aspect ratio inside image gallery/lightbox * feat(SW-3152): Respecting image aspect ratio inside image gallery/lightbox * feat(BOOK-144): Make image clickable instead of a button to avoid being able to click outside of the image area Approved-by: Bianca Widstam Approved-by: Chuma Mcphoy (We Ahead) * Merged in fix/BOOK-127-translate-validation-text (pull request #2800) fix(BOOK-127): translate terms required message * fix(BOOK-127): translate terms required message Approved-by: Erik Tiekstra * Merged in feat/LOY-354-L7-Progress-Card (pull request #2786) Feat/LOY-354 L7 Progress Card * feat(LOY-354): Add Trophy icon * fix(LOY-354): include new tierPoints value * feat(LOY-354): L7 Progress Level Card support * refactor(LOY-354): Refactoring of component structure * fix(LOY-354): Remove intl prop drilling * fix(LOY-354): cleanup progress section code Approved-by: Erik Tiekstra * Merged in fix/BOOK-132-tracking-breakfast (pull request #2803) fix(BOOK-132): add breakfastOption tracking * fix(BOOK-132): add breakfastOption tracking Approved-by: Joakim Jäderberg * Merged in fix/enter-details-errors-missing (pull request #2806) fix: Add missing messages to BookingFlowInput errors * Add missing messages to BookingFlowInput errors * Fix errors * zippy zip * phoney Approved-by: Bianca Widstam Approved-by: Joakim Jäderberg * Merged in feature/copy-static-files-via-build-scripts (pull request #2798) SW-3467 Copy static files via build scripts * add file copy script and add all fonts to design-system * add file copy script and add all fonts to design-system * add file copy script and add all fonts to design-system * remove fonts that will be copied via build scripts * wip * update paths to shared files * update material-symbol script * merge * fix missing shared segment for path in fonts.css Approved-by: Linus Flood * Merged in feat/SW-2999-cleanup (pull request #2810) feat(SW-2999): cleanup current web * feat(SW-2999): cleanup current web * Merge master * Removed unused fonts Approved-by: Joakim Jäderberg * Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/SW-3149-send-logs-to-sentry * Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/SW-3149-send-logs-to-sentry * merge Approved-by: Linus Flood
This commit is contained in:
@@ -1,3 +1,28 @@
|
||||
import * as Sentry from "@sentry/nextjs"
|
||||
|
||||
const logLevels = ["debug", "info", "warn", "error"] as const
|
||||
const minimumLogLevel = (() => {
|
||||
const configuredMinimumLogLevel = (
|
||||
(process.env.MINIMUM_LOG_LEVEL ||
|
||||
process.env.NEXT_PUBLIC_MINIMUM_LOG_LEVEL) ??
|
||||
"info"
|
||||
).toLowerCase() as (typeof logLevels)[number]
|
||||
|
||||
if (!logLevels.includes(configuredMinimumLogLevel)) {
|
||||
console.warn(
|
||||
`Invalid log level configured: ${configuredMinimumLogLevel}, defaulting to 'info'`
|
||||
)
|
||||
|
||||
return "info"
|
||||
}
|
||||
|
||||
return configuredMinimumLogLevel
|
||||
})()
|
||||
|
||||
function shouldLog(level: (typeof logLevels)[number]) {
|
||||
return logLevels.indexOf(level) >= logLevels.indexOf(minimumLogLevel)
|
||||
}
|
||||
|
||||
export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
const asyncWrapper: () => Promise<string> =
|
||||
typeof loggerPrefix === "string" ? async () => loggerPrefix : loggerPrefix
|
||||
@@ -11,39 +36,34 @@ export function createLogger(loggerPrefix: string | (() => Promise<string>)) {
|
||||
return `[${prefix}]`
|
||||
}
|
||||
|
||||
async function log(
|
||||
level: (typeof logLevels)[number],
|
||||
message: string,
|
||||
...args: unknown[]
|
||||
) {
|
||||
if (!shouldLog(level)) {
|
||||
return
|
||||
}
|
||||
|
||||
Sentry.logger[level](`${await getLoggerPrefix()} ${message}`.trim(), {
|
||||
...args,
|
||||
})
|
||||
console[level](`${await getLoggerPrefix()} ${message}`.trim(), ...args)
|
||||
}
|
||||
|
||||
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
|
||||
)
|
||||
await log("debug", message, ...args)
|
||||
},
|
||||
|
||||
async info(message: string, ...args: unknown[]): Promise<void> {
|
||||
// TODO: Make this configurable
|
||||
if (process.env.NODE_ENV !== "development") {
|
||||
return
|
||||
}
|
||||
|
||||
console.info(`${await getLoggerPrefix()} ${message}`.trim(), ...args)
|
||||
await log("info", message, ...args)
|
||||
},
|
||||
async warn(message: string, ...args: unknown[]): Promise<void> {
|
||||
console.warn(
|
||||
`${await getLoggerPrefix()} [warn] - ${message}`.trim(),
|
||||
...args
|
||||
)
|
||||
await log("warn", message, ...args)
|
||||
},
|
||||
async error(message: string, ...args: unknown[]): Promise<void> {
|
||||
console.error(
|
||||
`${await getLoggerPrefix()} [error] - ${message}`.trim(),
|
||||
...args
|
||||
)
|
||||
await log("error", message, ...args)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "^1.9.0",
|
||||
"@sentry/nextjs": "^8.41.0",
|
||||
"@sentry/nextjs": "^10.11.0",
|
||||
"@t3-oss/env-nextjs": "^0.13.4",
|
||||
"deepmerge": "^4.3.1",
|
||||
"flat": "^6.0.1",
|
||||
|
||||
@@ -164,7 +164,7 @@ export function createCounter(meterName: string, counterName: string) {
|
||||
const finalAttrs = sanitize(mergedAttrs)
|
||||
|
||||
counter.add(1, finalAttrs)
|
||||
logger.info(`[${fullName}] start:`, finalAttrs)
|
||||
logger.debug(`[${fullName}] start:`, finalAttrs)
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -177,7 +177,7 @@ export function createCounter(meterName: string, counterName: string) {
|
||||
const finalAttrs = sanitize(mergedAttrs)
|
||||
|
||||
success.add(1, finalAttrs)
|
||||
logger.info(`[${fullName}] success:`, finalAttrs)
|
||||
logger.debug(`[${fullName}] success:`, finalAttrs)
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user