loggerPlugin.js
1.4 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// loggerPlugin.js
export default {
install(Vue, options) {
// 创建一个 Vue 实例作为事件总线
// const bus = new Vue()
const cLog = console.log
const cError = console.error
options.commit('setStoreLog', cLog)
console.netwokrLog = function (data) {
options.commit('addNetworkLoggerData', {
sendTime: Date.now(),
...data
})
}
console.log = function (data) {
cLog(...arguments)
if (arguments[0]) {
let length = arguments.length
let logTime = Date.now()
for (let index = 0; index < length; index++) {
const item = arguments[index]
options.commit('addLoggerData', {
logType: 'log',
logId: logTime,
type: typeof item,
log: item
})
}
}
}
console.error = function () {
cError(...arguments)
let length = arguments.length
let logTime = Date.now()
for (let index = 0; index < length; index++) {
const item = arguments[index]
options.commit('addLoggerData', {
logType: 'error',
logId: logTime,
type: typeof item,
log: typeof item === 'object' ? JSON.stringify(item) : item
})
}
}
Vue.config.errorHandler = function (error, vm, info) {
console.error('Error message:' + error.message, 'Error stack:' + error.stack)
}
}
}