feat: support dynamically set log level

This commit is contained in:
Gabe
2025-10-12 23:17:50 +08:00
parent f19b6ef02f
commit bfce9b525a
8 changed files with 119 additions and 18 deletions

View File

@@ -1,9 +1,16 @@
import { createContext, useCallback, useContext, useMemo } from "react";
import {
createContext,
useCallback,
useContext,
useMemo,
useEffect,
} from "react";
import Alert from "@mui/material/Alert";
import { STOKEY_SETTING, DEFAULT_SETTING, KV_SETTING_KEY } from "../config";
import { useStorage } from "./Storage";
import { debounceSyncMeta } from "../libs/storage";
import Loading from "./Loading";
import { logger } from "../libs/log";
const SettingContext = createContext({
setting: DEFAULT_SETTING,
@@ -19,6 +26,16 @@ export function SettingProvider({ children }) {
reload,
} = useStorage(STOKEY_SETTING, DEFAULT_SETTING, KV_SETTING_KEY);
useEffect(() => {
(async () => {
try {
logger.setLevel(setting?.logLevel);
} catch (error) {
logger.error("Failed to fetch log level, using default.", error);
}
})();
}, [setting]);
const updateSetting = useCallback(
(objOrFn) => {
update(objOrFn);