electron + log4js 应用日志管理
2025/11/15大约 2 分钟
electron + log4js 应用日志管理-记录和跟踪应用运行时日志信息
具体实现
首先,需要在你的Electron项目中安装log4js。可以通过npm或yarn来安装:
npm i log4js创建日志配置文件:创建一个专门用于配置log4js的文件,例如logConfig.js。在这个文件中,你可以定义不同的appenders、levels等。
log4js.configure({
// 日志输出
appenders: {
out: { type: "stdout" },
app: {
type: "file",
filename: "application-gui.log",
maxLogSize: 20 * 1024 * 1024,
backups: 3,
compress: false,
encoding: "utf-8",
layout: {
type: "pattern",
pattern: "[%d{yyyy-MM-dd hh:mm:ss}] [%p] %m"
},
keepFileExt: true
}
},
// 定义日志的类别
categories: {
default: {
appenders: ["out", "app"],
level: "debug"
}
}
});创建一个日志工具文件,例如logger.js,在这个文件中,你将封装日志记录的函数,使其易于在应用的不同部分使用:
const log4js = require('./logConfig');
const getLogger = (category) => {
return log4js.getLogger(category);
};
const log = (category, level, message) => {
const logger = getLogger(category);
logger[level](message);
};
module.exports = { log, getLogger };Electron主进程中使用日志:在Electron的主进程文件(通常是main.js或index.js)中,引入你的日志封装函数,并使用它来记录日志
const { log } = require('./logger');
log('default', 'info', 'This is an info message from the main process.');
log('server', 'error', 'This is an error message from the main process.');Electron渲染进程中使用日志:由于渲染进程和主进程是隔离的,你需要使用Electron的IPC机制来从渲染进程发送日志消息到主进程。首先,在渲染进程中封装一个发送日志的函数
// 在渲染进程中
const { ipcRenderer } = require('electron');
const sendLog = (level, message) => {
ipcRenderer.send('log', { level, message });
};然后,在主进程中监听这个IPC消息,并使用封装的日志记录函数来记录日志:
// 在主进程中
const { ipcMain } = require('electron');
const { log } = require('./logger');
ipcMain.on('log', (event, { level, message }) => {
log('default', level, message);
});现在就可以在Electron应用的任何地方使用log函数来记录日志,它们将被发送到主进程并写入到配置的文件中。
这是一个基本的封装示例,你可以根据需要添加更多的功能,比如日志的格式化、日志级别的动态调整、日志的过滤等。
通过这种方式,可以将日志记录逻辑与业务逻辑分离,使得代码更加清晰,并且便于维护和扩展。