feat: add configurable log size and count options in settings

This commit is contained in:
Tunglies
2025-09-22 16:31:38 +08:00
parent 22e1d329cb
commit 620922f82e
5 changed files with 99 additions and 7 deletions

View File

@@ -23,6 +23,8 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
const [open, setOpen] = useState(false);
const [values, setValues] = useState({
appLogLevel: "warn",
appLogMaxSize: 8,
appLogMaxCount: 12,
autoCloseConnection: true,
autoCheckUpdate: true,
enableBuiltinEnhanced: true,
@@ -37,6 +39,8 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
setOpen(true);
setValues({
appLogLevel: verge?.app_log_level ?? "warn",
appLogMaxSize: verge?.app_log_max_size ?? 128,
appLogMaxCount: verge?.app_log_max_count ?? 8,
autoCloseConnection: verge?.auto_close_connection ?? true,
autoCheckUpdate: verge?.auto_check_update ?? true,
enableBuiltinEnhanced: verge?.enable_builtin_enhanced ?? true,
@@ -100,6 +104,66 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
</Select>
</ListItem>
<ListItem sx={{ padding: "5px 2px" }}>
<ListItemText
primary={t("App Log Max Size")}
sx={{ maxWidth: "fit-content" }}
/>
<TextField
autoComplete="new-password"
size="small"
type="number"
autoCorrect="off"
autoCapitalize="off"
spellCheck="false"
sx={{ width: 140, marginLeft: "auto" }}
value={values.appLogMaxSize}
onChange={(e) =>
setValues((v) => ({
...v,
appLogMaxSize: Math.max(1, parseInt(e.target.value) || 128),
}))
}
slotProps={{
input: {
endAdornment: (
<InputAdornment position="end">{t("KB")}</InputAdornment>
),
},
}}
/>
</ListItem>
<ListItem sx={{ padding: "5px 2px" }}>
<ListItemText
primary={t("App Log Max Count")}
sx={{ maxWidth: "fit-content" }}
/>
<TextField
autoComplete="new-password"
size="small"
type="number"
autoCorrect="off"
autoCapitalize="off"
spellCheck="false"
sx={{ width: 140, marginLeft: "auto" }}
value={values.appLogMaxCount}
onChange={(e) =>
setValues((v) => ({
...v,
appLogMaxCount: Math.max(1, parseInt(e.target.value) || 1),
}))
}
slotProps={{
input: {
endAdornment: (
<InputAdornment position="end">{t("Files")}</InputAdornment>
),
},
}}
/>
</ListItem>
<ListItem sx={{ padding: "5px 2px" }}>
<ListItemText
primary={t("Auto Close Connections")}
@@ -153,7 +217,7 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
<ListItemText primary={t("Proxy Layout Columns")} />
<Select
size="small"
sx={{ width: 135, "> div": { py: "7.5px" } }}
sx={{ width: 160, "> div": { py: "7.5px" } }}
value={values.proxyLayoutColumn}
onChange={(e) =>
setValues((v) => ({
@@ -177,7 +241,7 @@ export const MiscViewer = forwardRef<DialogRef>((props, ref) => {
<ListItemText primary={t("Auto Log Clean")} />
<Select
size="small"
sx={{ width: 135, "> div": { py: "7.5px" } }}
sx={{ width: 160, "> div": { py: "7.5px" } }}
value={values.autoLogClean}
onChange={(e) =>
setValues((v) => ({

View File

@@ -778,6 +778,8 @@ interface IProxyConfig
interface IVergeConfig {
app_log_level?: "trace" | "debug" | "info" | "warn" | "error" | string;
app_log_max_size?: number; // KB
app_log_max_count?: number;
language?: string;
tray_event?:
| "main_window"