From 6628f1b462733f319cbd89a7a7ddf1dc1ca745ce Mon Sep 17 00:00:00 2001 From: FairyEver <1711467488@qq.com> Date: Fri, 8 May 2020 08:41:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AE=80=E5=8C=96=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8D=95=E6=8D=89=E6=8F=92=E4=BB=B6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugin/error/index.js | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/plugin/error/index.js b/src/plugin/error/index.js index b97d7cba..13e59005 100644 --- a/src/plugin/error/index.js +++ b/src/plugin/error/index.js @@ -1,3 +1,4 @@ +import { get, isObject } from 'lodash' import store from '@/store' import util from '@/libs/util' @@ -6,25 +7,22 @@ export default { function writeLog (logType) { return (error, vm, info = '') => { Vue.nextTick(() => { - // store 追加 log store.dispatch('d2admin/log/push', { - message: `${info}: ${(typeof error === 'object') ? error.message : error}`, + message: `${info}: ${isObject(error) ? error.message : error}`, type: logType, meta: { error, vm } }) - // 只在开发模式下打印 log - if (process.env.NODE_ENV === 'development') { - util.log.capsule('D2Admin', 'ErrorHandler', logType) - util.log.danger('>>>>>> 错误信息 >>>>>>') - console.log(info) - util.log.danger('>>>>>> Vue 实例 >>>>>>') - console.log(vm) - util.log.danger('>>>>>> Error >>>>>>') - console.log(error) - } + if (process.env.NODE_ENV !== 'development') return + util.log.capsule('D2Admin', 'ErrorHandler', logType) + util.log.danger('>>>>>> 错误信息 >>>>>>') + console.log(info) + util.log.danger('>>>>>> Vue 实例 >>>>>>') + console.log(vm) + util.log.danger('>>>>>> Error >>>>>>') + console.log(error) }) } } @@ -32,24 +30,23 @@ export default { Vue.config.warnHandler = writeLog('warning') } Vue.config.errorHandler = writeLog('danger') - window.onunhandledrejection = error => { store.dispatch('d2admin/log/push', { - message: (('message' in error.reason) && error.reason.message) || 'Unknown error', + message: get(error, 'reason.message', 'Unknown error'), type: 'danger', meta: { - error: error.reason, - trace: 'stack' in error.reason && error.reason.stack + error: get(error, 'reason'), + trace: get(error, 'reason.stack') } }) } window.onerror = (event, source, lineno, colno, error) => { store.dispatch('d2admin/log/push', { - message: (error && error.message) || 'Unknown error', + message: get(error, 'message', 'Unknown error'), type: 'danger', meta: { error, - trace: error.stack, + trace: get(error, 'stack'), source: `${source}@${lineno}:${colno}`, event: event }