Files
speckle-server/packages/frontend-2/composables/logging.ts
T
Kristaps Fabians Geikins 0c293b0615 fix(fe2): reverting vue/nuxt downgrade (#1776)
* fix(fe2): reverting vue/nuxt downgrade

* fix for broken vue 3.3 build?

* storybook fix

* storybook fix

* fe2 storybook update

* minor update to rerun CI
2023-08-29 09:52:48 +03:00

44 lines
1.2 KiB
TypeScript

import { NuxtApp } from '#app'
import { Optional } from '@speckle/shared'
import { buildFakePinoLogger } from '~~/lib/core/helpers/observability'
export const useLogger = () => {
return useNuxtApp().$logger
}
/**
* Use when you need to be sure that the real structured pino logger is available
* (it isn't in some early startup contexts like apollo link setup)
*/
export const useStrictLogger = async (
options?: Partial<{ dontNotifyFallback: boolean }>
) => {
const { dontNotifyFallback } = options || {}
let nuxtApp: Optional<NuxtApp> = undefined
try {
nuxtApp = useNuxtApp()
} catch (e) {
// suppress 'nuxt is not available'
}
if (nuxtApp?.$logger) return nuxtApp?.$logger
// Nuxt app not found in this scope
const err = new Error(
'Nuxt app for logger not found! Initializing fallback structured logger...'
)
let logger: ReturnType<typeof buildFakePinoLogger>
if (process.server) {
const { buildLogger } = await import('~/server/lib/core/helpers/observability')
logger = buildLogger('info', process.dev ? true : false) // no runtime config, so falling back to default settings
} else {
logger = buildFakePinoLogger()
}
if (!dontNotifyFallback) logger.error(err)
return logger
}