AiDemo/electron/logger.js
2025-10-24 17:31:14 +08:00

52 行
1.3 KiB
JavaScript

const log = require('electron-log');
const { app } = require('electron');
const path = require('path');
const fs = require('fs');
class Logger {
constructor() {
this.initializeLogger();
}
initializeLogger() {
log.transports.file.resolvePath = () => {
const logsPath = path.join(app.getPath('userData'), 'logs');
if (!fs.existsSync(logsPath)) {
fs.mkdirSync(logsPath, { recursive: true });
}
return path.join(logsPath, 'app.log');
};
if (process.env.NODE_ENV === 'development') {
log.transports.console.level = 'info';
} else {
log.transports.console.level = false;
}
log.transports.file.level = 'info';
log.transports.file.maxSize = 10 * 1024 * 1024;
log.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}] {text}';
this.logger = log;
this.info('Logger initialized');
}
info(message, ...args) {
this.logger.info(message, ...args);
}
warn(message, ...args) {
this.logger.warn(message, ...args);
}
error(message, ...args) {
this.logger.error(message, ...args);
}
debug(message, ...args) {
this.logger.debug(message, ...args);
}
}
module.exports = Logger;