Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 1x 1x 1x 2x 2x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 1x | import type {App} from 'vue'
import {useSchemaLogger} from './logger'
export default {
install(app: App) {
// $log で message,payload の順に使える
app.config.globalProperties.$log = useSchemaLogger()
// Vueエラー
app.config.errorHandler = (err, instance, info) => {
// 可能な範囲でコンポーネント名を抽出(Vue3)
const compName =
(instance?.$options as any)?.name ??
(instance?.$options as any)?.__name ??
(instance as any)?.$?.type?.name ??
'anonymous'
useSchemaLogger({ logger: 'VueError', component: compName }).error(
'Unhandled Vue error',
{
err:
err instanceof Error
? { name: err.name, message: err.message, stack: err.stack }
: String(err),
info,
}
)
}
// 未処理Promise
window.addEventListener('unhandledrejection', (e) => {
useSchemaLogger({ logger: 'Promise' })
.error('unhandledrejection', { reason: String(e.reason) })
})
},
}
|