mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-28 16:30:52 +08:00
feat: enhance log filtering by adding support for debug level and updating log hierarchy #4293
This commit is contained in:
@@ -234,6 +234,19 @@ impl LogsMonitor {
|
|||||||
// Filter logs based on level if needed
|
// Filter logs based on level if needed
|
||||||
let should_include = match filter_level {
|
let should_include = match filter_level {
|
||||||
"all" => true,
|
"all" => true,
|
||||||
|
"debug" => true, // DEBUG level should include all log types
|
||||||
|
"info" => {
|
||||||
|
let log_type = log_data.log_type.to_lowercase();
|
||||||
|
matches!(log_type.as_str(), "info" | "warning" | "error")
|
||||||
|
}
|
||||||
|
"warning" => {
|
||||||
|
let log_type = log_data.log_type.to_lowercase();
|
||||||
|
matches!(log_type.as_str(), "warning" | "error")
|
||||||
|
}
|
||||||
|
"error" => {
|
||||||
|
let log_type = log_data.log_type.to_lowercase();
|
||||||
|
log_type == "error"
|
||||||
|
}
|
||||||
level => log_data.log_type.to_lowercase() == level.to_lowercase(),
|
level => log_data.log_type.to_lowercase() == level.to_lowercase(),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -282,10 +295,22 @@ impl LogsMonitor {
|
|||||||
.iter()
|
.iter()
|
||||||
.filter(|log| {
|
.filter(|log| {
|
||||||
if let Some(ref filter_level) = level {
|
if let Some(ref filter_level) = level {
|
||||||
if filter_level == "all" {
|
match filter_level.as_str() {
|
||||||
true
|
"all" => true,
|
||||||
} else {
|
"debug" => true, // DEBUG level should include all log types
|
||||||
log.log_type.to_lowercase() == filter_level.to_lowercase()
|
"info" => {
|
||||||
|
let log_type = log.log_type.to_lowercase();
|
||||||
|
matches!(log_type.as_str(), "info" | "warning" | "error")
|
||||||
|
}
|
||||||
|
"warning" => {
|
||||||
|
let log_type = log.log_type.to_lowercase();
|
||||||
|
matches!(log_type.as_str(), "warning" | "error")
|
||||||
|
}
|
||||||
|
"error" => {
|
||||||
|
let log_type = log.log_type.to_lowercase();
|
||||||
|
log_type == "error"
|
||||||
|
}
|
||||||
|
level => log.log_type.to_lowercase() == level.to_lowercase(),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
true
|
true
|
||||||
|
|||||||
@@ -29,6 +29,9 @@ const Item = styled(Box)(({ theme: { palette, typography } }) => ({
|
|||||||
'& .type[data-type="info"], & .type[data-type="inf"]': {
|
'& .type[data-type="info"], & .type[data-type="inf"]': {
|
||||||
color: palette.info.main,
|
color: palette.info.main,
|
||||||
},
|
},
|
||||||
|
'& .type[data-type="debug"], & .type[data-type="dbg"]': {
|
||||||
|
color: palette.text.secondary,
|
||||||
|
},
|
||||||
"& .data": {
|
"& .data": {
|
||||||
color: palette.text.primary,
|
color: palette.text.primary,
|
||||||
overflowWrap: "anywhere",
|
overflowWrap: "anywhere",
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ const LOG_LEVEL_HIERARCHY = {
|
|||||||
info: ["info", "warning", "error"],
|
info: ["info", "warning", "error"],
|
||||||
warning: ["warning", "error"],
|
warning: ["warning", "error"],
|
||||||
error: ["error"],
|
error: ["error"],
|
||||||
debug: ["debug"],
|
debug: ["info", "warning", "error", "debug"],
|
||||||
};
|
};
|
||||||
|
|
||||||
const LogPage = () => {
|
const LogPage = () => {
|
||||||
|
|||||||
@@ -185,10 +185,7 @@ export const clearGlobalLogs = () => {
|
|||||||
export const useGlobalLogData = (logLevel: LogLevel = "all") => {
|
export const useGlobalLogData = (logLevel: LogLevel = "all") => {
|
||||||
const logs = useGlobalLogStore((state) => state.logs);
|
const logs = useGlobalLogStore((state) => state.logs);
|
||||||
|
|
||||||
// 根据当前选择的日志等级过滤日志
|
// 日志已经在后端根据级别进行了过滤,这里直接返回所有日志
|
||||||
if (logLevel === "all") {
|
// 不需要在前端再次过滤,避免重复过滤导致DEBUG日志丢失
|
||||||
return logs;
|
return logs;
|
||||||
} else {
|
|
||||||
return logs.filter((log) => log.type.toLowerCase() === logLevel);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user