mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-20 05:52:24 +00:00
chore: add message repeat counter
This commit is contained in:
parent
903332e1c9
commit
a059127c07
1 changed files with 60 additions and 42 deletions
|
@ -332,6 +332,7 @@
|
||||||
<b>[[ log.sender ]]</b>
|
<b>[[ log.sender ]]</b>
|
||||||
<a-tag>[[ log.date ]]</a-tag>
|
<a-tag>[[ log.date ]]</a-tag>
|
||||||
<a-tag :color="logModal.tagsColors[log.level]">[[ log.level ]]</a-tag>
|
<a-tag :color="logModal.tagsColors[log.level]">[[ log.level ]]</a-tag>
|
||||||
|
<a-tag v-if="log.repeat">[[ log.repeat ]]</a-tag>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
<template #description>
|
<template #description>
|
||||||
|
@ -492,53 +493,70 @@
|
||||||
this.logs = this.getLogs(logs);
|
this.logs = this.getLogs(logs);
|
||||||
},
|
},
|
||||||
getLogs(logs) {
|
getLogs(logs) {
|
||||||
|
const seen = {}
|
||||||
|
|
||||||
if (logs === null) return []
|
if (logs === null) return []
|
||||||
|
|
||||||
return logs.map((log) => {
|
return logs
|
||||||
let message;
|
.map((log) => {
|
||||||
let level;
|
let message;
|
||||||
let date;
|
let level;
|
||||||
let sender;
|
let date;
|
||||||
|
let sender;
|
||||||
|
|
||||||
if (log.includes("XRAY:")) {
|
if (log.includes("XRAY:")) {
|
||||||
sender = "xray"
|
sender = "xray"
|
||||||
|
} else {
|
||||||
|
sender = "3x-ui"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sender === "xray") {
|
||||||
|
if (log.toLowerCase().includes("failed")) {
|
||||||
|
level = "err"
|
||||||
|
} else if (log.includes("[Warning]")) {
|
||||||
|
level = "warning"
|
||||||
|
} else if (log.includes("[Info]")) {
|
||||||
|
level = "info"
|
||||||
|
} else {
|
||||||
|
level = "debug"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (log.includes("ERROR") || log.toLowerCase().includes("failed")) {
|
||||||
|
level = "err"
|
||||||
|
} else if (log.includes("DEBUG")) {
|
||||||
|
level = "debug"
|
||||||
|
} else if (log.includes("INFO")) {
|
||||||
|
level = "info"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// date = ``
|
||||||
|
// message = `${logs.split("—")[1]}`
|
||||||
|
|
||||||
|
date = `${log.split(" ")[0]} ${log.split(" ")[1]}`
|
||||||
|
message = `${log.split("——")[1]}`
|
||||||
|
|
||||||
|
return {
|
||||||
|
message: message,
|
||||||
|
level: level,
|
||||||
|
date: date,
|
||||||
|
sender: sender
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.reduce((result, item) => {
|
||||||
|
const { message } = item;
|
||||||
|
if (seen.hasOwnProperty(message)) {
|
||||||
|
// Если элемент с таким message уже встречался, увеличим счётчик 'repeat'
|
||||||
|
seen[message].repeat += 1;
|
||||||
} else {
|
} else {
|
||||||
sender = "3x-ui"
|
// Если элемента с таким message ещё нет, добавляем копию объекта и инициализируем repeat как 0
|
||||||
|
const newItem = { ...item, repeat: 0 };
|
||||||
|
seen[message] = newItem;
|
||||||
|
result.push(newItem);
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
if (sender === "xray") {
|
}, [])
|
||||||
if (log.toLowerCase().includes("failed")) {
|
.reverse()
|
||||||
level = "err"
|
|
||||||
} else if (log.includes("[Warning]")) {
|
|
||||||
level = "warning"
|
|
||||||
} else if (log.includes("[Info]")) {
|
|
||||||
level = "info"
|
|
||||||
} else {
|
|
||||||
level = "debug"
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (log.includes("ERROR") || log.toLowerCase().includes("failed")) {
|
|
||||||
level = "err"
|
|
||||||
} else if (log.includes("DEBUG")) {
|
|
||||||
level = "debug"
|
|
||||||
} else if (log.includes("INFO")) {
|
|
||||||
level = "info"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// date = ``
|
|
||||||
// message = `${logs.split("—")[1]}`
|
|
||||||
|
|
||||||
date = `${log.split(" ")[0]} ${log.split(" ")[1]}`
|
|
||||||
message = `${log.split("——")[1]}`
|
|
||||||
|
|
||||||
return {
|
|
||||||
message: message,
|
|
||||||
level: level,
|
|
||||||
date: date,
|
|
||||||
sender: sender
|
|
||||||
}
|
|
||||||
}).reverse()
|
|
||||||
},
|
},
|
||||||
hide() {
|
hide() {
|
||||||
this.visible = false;
|
this.visible = false;
|
||||||
|
|
Loading…
Reference in a new issue