feat(log): 实现日志文件持久化和全局进度条
- 新增日志文件保存和加载功能 - 实现全局进度条组件 - 优化初始化界面布局 - 更新设置界面,增加系统日志查看按钮
This commit is contained in:
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const electron_1 = require("electron");
|
||||
const path = __importStar(require("path"));
|
||||
const fs = __importStar(require("fs"));
|
||||
const environmentService_1 = require("./services/environmentService");
|
||||
const downloadService_1 = require("./services/downloadService");
|
||||
const pythonService_1 = require("./services/pythonService");
|
||||
@@ -129,6 +130,40 @@ electron_1.ipcMain.handle('update-backend', async (event, repoUrl = 'https://git
|
||||
const appRoot = (0, environmentService_1.getAppRoot)();
|
||||
return (0, gitService_1.cloneBackend)(appRoot, repoUrl); // 使用相同的逻辑,会自动判断是pull还是clone
|
||||
});
|
||||
// 日志文件操作
|
||||
electron_1.ipcMain.handle('save-logs-to-file', async (event, logs) => {
|
||||
try {
|
||||
const appRoot = (0, environmentService_1.getAppRoot)();
|
||||
const logsDir = path.join(appRoot, 'logs');
|
||||
// 确保logs目录存在
|
||||
if (!fs.existsSync(logsDir)) {
|
||||
fs.mkdirSync(logsDir, { recursive: true });
|
||||
}
|
||||
const logFilePath = path.join(logsDir, 'app.log');
|
||||
fs.writeFileSync(logFilePath, logs, 'utf8');
|
||||
console.log(`日志已保存到: ${logFilePath}`);
|
||||
}
|
||||
catch (error) {
|
||||
console.error('保存日志文件失败:', error);
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
electron_1.ipcMain.handle('load-logs-from-file', async () => {
|
||||
try {
|
||||
const appRoot = (0, environmentService_1.getAppRoot)();
|
||||
const logFilePath = path.join(appRoot, 'logs', 'app.log');
|
||||
if (fs.existsSync(logFilePath)) {
|
||||
const logs = fs.readFileSync(logFilePath, 'utf8');
|
||||
console.log(`从文件加载日志: ${logFilePath}`);
|
||||
return logs;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
catch (error) {
|
||||
console.error('加载日志文件失败:', error);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
// 应用生命周期
|
||||
electron_1.app.whenReady().then(createWindow);
|
||||
electron_1.app.on('window-all-closed', () => {
|
||||
|
||||
Reference in New Issue
Block a user