chore: bump version to 0.7.1
This commit is contained in:
73
electron-app/modules/logger.js
Normal file
73
electron-app/modules/logger.js
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* 日志记录模块
|
||||
* 负责应用日志记录和输出重定向
|
||||
*/
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
/**
|
||||
* 设置应用日志系统
|
||||
* @param {string} userDataPath 用户数据目录路径
|
||||
* @returns {string} 日志文件路径
|
||||
*/
|
||||
function setupLogging(userDataPath) {
|
||||
const logPath = path.join(
|
||||
userDataPath,
|
||||
'logs',
|
||||
`app-${new Date().toISOString().replace(/:/g, '-')}.log`
|
||||
);
|
||||
|
||||
// 确保日志目录存在
|
||||
const logDir = path.dirname(logPath);
|
||||
if (!fs.existsSync(logDir)) {
|
||||
fs.mkdirSync(logDir, { recursive: true });
|
||||
}
|
||||
|
||||
console.log(`日志文件将保存在: ${logPath}`);
|
||||
|
||||
// 创建日志文件写入流
|
||||
const logStream = fs.createWriteStream(logPath, { flags: 'a' });
|
||||
|
||||
// 重定向console输出到文件
|
||||
const originalConsoleLog = console.log;
|
||||
const originalConsoleError = console.error;
|
||||
|
||||
console.log = function(...args) {
|
||||
const message = args.map(arg =>
|
||||
typeof arg === 'object' ? JSON.stringify(arg) : arg
|
||||
).join(' ');
|
||||
|
||||
const timestamp = new Date().toISOString();
|
||||
const logMessage = `[${timestamp}] [INFO] ${message}\n`;
|
||||
|
||||
logStream.write(logMessage);
|
||||
originalConsoleLog.apply(console, args);
|
||||
};
|
||||
|
||||
console.error = function(...args) {
|
||||
const message = args.map(arg =>
|
||||
typeof arg === 'object' ? JSON.stringify(arg) : arg
|
||||
).join(' ');
|
||||
|
||||
const timestamp = new Date().toISOString();
|
||||
const logMessage = `[${timestamp}] [ERROR] ${message}\n`;
|
||||
|
||||
logStream.write(logMessage);
|
||||
originalConsoleError.apply(console, args);
|
||||
};
|
||||
|
||||
// 记录未捕获的异常
|
||||
process.on('uncaughtException', (error) => {
|
||||
console.error('未捕获的异常:', error);
|
||||
});
|
||||
|
||||
process.on('unhandledRejection', (reason, promise) => {
|
||||
console.error('未处理的Promise拒绝:', reason);
|
||||
});
|
||||
|
||||
return logPath;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
setupLogging
|
||||
};
|
||||
Reference in New Issue
Block a user