93 lines
2.4 KiB
JavaScript
93 lines
2.4 KiB
JavaScript
|
|
if (import.meta.env.VITE_USER_NODE_ENVh === "production") {
|
|||
|
|
const log = console.log;
|
|||
|
|
const error = console.error;
|
|||
|
|
const warn = console.warn;
|
|||
|
|
const info = console.info;
|
|||
|
|
const list = [];
|
|||
|
|
|
|||
|
|
class Item {
|
|||
|
|
constructor(type, arrs) {
|
|||
|
|
this.type = type
|
|||
|
|
this.time = FormatDate()
|
|||
|
|
this.content = arrs
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
console.log = function () {
|
|||
|
|
log(...arguments)
|
|||
|
|
list.push(new Item('log', [...arguments]))
|
|||
|
|
}
|
|||
|
|
console.error = function () {
|
|||
|
|
error(...arguments)
|
|||
|
|
list.push(new Item('error', [...arguments]))
|
|||
|
|
}
|
|||
|
|
console.warn = function () {
|
|||
|
|
warn(...arguments)
|
|||
|
|
list.push(new Item('warn', [...arguments]))
|
|||
|
|
}
|
|||
|
|
console.info = function () {
|
|||
|
|
info(...arguments)
|
|||
|
|
list.push(new Item('info', [...arguments]))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 导出列表-json
|
|||
|
|
const exportListJson = function () {
|
|||
|
|
const json = JSON.stringify(list, null, 2)
|
|||
|
|
const blob = new Blob([json], { type: 'application/json' })
|
|||
|
|
const url = URL.createObjectURL(blob)
|
|||
|
|
const a = document.createElement('a')
|
|||
|
|
a.href = url
|
|||
|
|
a.download = `console_${FormatDate("yyyyMMddHHmmss")}.json`
|
|||
|
|
a.click()
|
|||
|
|
URL.revokeObjectURL(url)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const keys = [];
|
|||
|
|
document.addEventListener("keydown", (e) => {
|
|||
|
|
if (e.key === "Control") return;
|
|||
|
|
if (e.ctrlKey) {
|
|||
|
|
keys.push(e.key)
|
|||
|
|
const str = keys.join('');
|
|||
|
|
if (/m{5}/i.test(str)) {
|
|||
|
|
exportListJson()
|
|||
|
|
keys.splice(0, keys.length)
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
keys.splice(0, keys.length)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/** 时间格式化-自定义格式
|
|||
|
|
* @param format 格式化字符串,默认值为 'yyyy-MM-dd HH:mm:ss'
|
|||
|
|
* @returns 格式化后的时间字符串
|
|||
|
|
*/
|
|||
|
|
function FormatDate(format = 'yyyy-MM-dd HH:mm:ss') {
|
|||
|
|
const date = new Date();
|
|||
|
|
const yyyy = String(date.getFullYear());
|
|||
|
|
const yy = String(date.getFullYear()).slice(-2);
|
|||
|
|
const MM = String(date.getMonth() + 1).padStart(2, '0');
|
|||
|
|
const M = String(date.getMonth() + 1);
|
|||
|
|
const dd = String(date.getDate()).padStart(2, '0');
|
|||
|
|
const d = String(date.getDate());
|
|||
|
|
const HH = String(date.getHours()).padStart(2, '0');
|
|||
|
|
const H = String(date.getHours());
|
|||
|
|
const mm = String(date.getMinutes()).padStart(2, '0');
|
|||
|
|
const m = String(date.getMinutes());
|
|||
|
|
const ss = String(date.getSeconds()).padStart(2, '0');
|
|||
|
|
const s = String(date.getSeconds());
|
|||
|
|
const str = format.replaceAll('yyyy', yyyy)
|
|||
|
|
.replaceAll('yy', yy)
|
|||
|
|
.replaceAll('MM', MM)
|
|||
|
|
.replaceAll('M', M)
|
|||
|
|
.replaceAll('dd', dd)
|
|||
|
|
.replaceAll('d', d)
|
|||
|
|
.replaceAll('HH', HH)
|
|||
|
|
.replaceAll('H', H)
|
|||
|
|
.replaceAll('mm', mm)
|
|||
|
|
.replaceAll('m', m)
|
|||
|
|
.replaceAll('ss', ss)
|
|||
|
|
.replaceAll('s', s);
|
|||
|
|
return str;
|
|||
|
|
}
|