fix: log levels will not display their respective logs correctly (#4074)
* fix-log levels will not display their respective logs correctly * fix-logs * Update UPDATELOG.md * Update UPDATELOG.md
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
- 修复`DNS`覆写 `nameserver-policy` 字段无法正确识别 `geo` 库
|
- 修复`DNS`覆写 `nameserver-policy` 字段无法正确识别 `geo` 库
|
||||||
- 修复搜索框输入特殊字符崩溃
|
- 修复搜索框输入特殊字符崩溃
|
||||||
- 修复 Windows 下 Start UP 名称与 exe 名称不统一
|
- 修复 Windows 下 Start UP 名称与 exe 名称不统一
|
||||||
|
- 修复显示 Mihomo 内核日志等级应该大于设置等级
|
||||||
|
|
||||||
### ✨ 新增功能
|
### ✨ 新增功能
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,15 @@ import {
|
|||||||
toggleLogEnabled,
|
toggleLogEnabled,
|
||||||
} from "@/services/global-log-service";
|
} from "@/services/global-log-service";
|
||||||
|
|
||||||
|
// 定义日志级别结构
|
||||||
|
const LOG_LEVEL_HIERARCHY = {
|
||||||
|
all: ["info", "warning", "error", "debug"],
|
||||||
|
info: ["info", "warning", "error"],
|
||||||
|
warning: ["warning", "error"],
|
||||||
|
error: ["error"],
|
||||||
|
debug: ["debug"],
|
||||||
|
};
|
||||||
|
|
||||||
const LogPage = () => {
|
const LogPage = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [enableLog, setEnableLog] = useEnableLog();
|
const [enableLog, setEnableLog] = useEnableLog();
|
||||||
@@ -35,21 +44,29 @@ const LogPage = () => {
|
|||||||
"info",
|
"info",
|
||||||
);
|
);
|
||||||
const [match, setMatch] = useState(() => (_: string) => true);
|
const [match, setMatch] = useState(() => (_: string) => true);
|
||||||
const logData = useGlobalLogData(logLevel);
|
const logData = useGlobalLogData("all");
|
||||||
const [searchState, setSearchState] = useState<SearchState>();
|
const [searchState, setSearchState] = useState<SearchState>();
|
||||||
|
|
||||||
const filterLogs = useMemo(() => {
|
const filterLogs = useMemo(() => {
|
||||||
return logData
|
if (!logData || logData.length === 0) {
|
||||||
? logData.filter((data) => {
|
return [];
|
||||||
// 构建完整的搜索文本,包含时间、类型和内容
|
}
|
||||||
const searchText =
|
|
||||||
`${data.time || ""} ${data.type} ${data.payload}`.toLowerCase();
|
|
||||||
|
|
||||||
return logLevel === "all"
|
const allowedTypes = LOG_LEVEL_HIERARCHY[logLevel] || [];
|
||||||
? match(searchText)
|
|
||||||
: data.type.toLowerCase() === logLevel && match(searchText);
|
return logData.filter((data) => {
|
||||||
})
|
const logType = data.type?.toLowerCase() || "";
|
||||||
: [];
|
const isAllowedType =
|
||||||
|
logLevel === "all" || allowedTypes.includes(logType);
|
||||||
|
|
||||||
|
// 构建完整的搜索文本,包含时间、类型和内容
|
||||||
|
const searchText =
|
||||||
|
`${data.time || ""} ${data.type} ${data.payload}`.toLowerCase();
|
||||||
|
|
||||||
|
const matchesSearch = match(searchText);
|
||||||
|
|
||||||
|
return isAllowedType && matchesSearch;
|
||||||
|
});
|
||||||
}, [logData, logLevel, match]);
|
}, [logData, logLevel, match]);
|
||||||
|
|
||||||
const handleLogLevelChange = (newLevel: LogLevel) => {
|
const handleLogLevelChange = (newLevel: LogLevel) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user