- 新增日志系统配置选项,支持日志级别、输出模式、文件大小等设置 - 添加当日日志文件下载功能,可通过Web界面直接下载 - 将console.log/error替换为结构化logger,提升日志可管理性 - 在日志页面添加自动滚动到底部功能 - 更新配置示例文件,包含完整的日志配置参数
67 lines
No EOL
1.9 KiB
JavaScript
67 lines
No EOL
1.9 KiB
JavaScript
// 全局变量
|
|
let eventSource = null;
|
|
let autoScroll = true;
|
|
let logs = [];
|
|
|
|
// 提供商统计全局变量
|
|
let providerStats = {
|
|
totalRequests: 0,
|
|
totalErrors: 0,
|
|
activeProviders: 0,
|
|
healthyProviders: 0,
|
|
totalAccounts: 0,
|
|
lastUpdateTime: null,
|
|
providerTypeStats: {} // 详细按类型统计
|
|
};
|
|
|
|
// DOM元素 - 使用 getter 延迟获取,以支持动态加载的组件
|
|
const elements = {
|
|
get serverStatus() { return document.getElementById('serverStatus'); },
|
|
get restartBtn() { return document.getElementById('restartBtn'); },
|
|
get sections() { return document.querySelectorAll('.section'); },
|
|
get navItems() { return document.querySelectorAll('.nav-item'); },
|
|
get logsContainer() { return document.getElementById('logsContainer'); },
|
|
get clearLogsBtn() { return document.getElementById('clearLogs'); },
|
|
get downloadLogsBtn() { return document.getElementById('downloadLogs'); },
|
|
get toggleAutoScrollBtn() { return document.getElementById('toggleAutoScroll'); },
|
|
get saveConfigBtn() { return document.getElementById('saveConfig'); },
|
|
get resetConfigBtn() { return document.getElementById('resetConfig'); },
|
|
get toastContainer() { return document.getElementById('toastContainer'); },
|
|
get modelProvider() { return document.getElementById('modelProvider'); },
|
|
};
|
|
|
|
// 定期刷新间隔
|
|
const REFRESH_INTERVALS = {
|
|
SYSTEM_INFO: 10000
|
|
};
|
|
|
|
// 导出所有常量
|
|
export {
|
|
eventSource,
|
|
autoScroll,
|
|
logs,
|
|
providerStats,
|
|
elements,
|
|
REFRESH_INTERVALS
|
|
};
|
|
|
|
// 更新函数
|
|
export function setEventSource(source) {
|
|
eventSource = source;
|
|
}
|
|
|
|
export function setAutoScroll(value) {
|
|
autoScroll = value;
|
|
}
|
|
|
|
export function addLog(log) {
|
|
logs.push(log);
|
|
}
|
|
|
|
export function clearLogs() {
|
|
logs = [];
|
|
}
|
|
|
|
export function updateProviderStats(newStats) {
|
|
providerStats = { ...providerStats, ...newStats };
|
|
} |