Logo Vincent
返回文章列表

Electron-开发实践:本地日志

Electron
Electron-开发实践:本地日志
目录

【前言】

使用electron开发好本地应用后,

本地日志记录必不可少,

这样可以通过日志获取用户操作信息以及定位bug等,

本地日志与实时性的埋点上报稍微有不同,

本地日志量更大,信息更全,且不是所有信息都时候上报。

【与nodejs本地日志的异同】

electron写本地日志和nodejs写本地日志类似,

如果想自己封装,可以参考这篇文章: Node.js-WebServer开发实践:本地日志

不同点是

1. 初始化logger的时机

2. 渲染进程日志通过ipc传到主进程后记录到本地

【qiao-x-logger】

封装了一个npm包,欢迎使用: https://code.insistime.com/#/qiao-x-logger

初始化

建议在尽量早的时机初始化,这样可以记录更多的日志信息,

例如在electron入口js中第一行初始化,

// init
import { initLogger } from "qiao-x-logger";

// init logger
const loggerPath = path.resolve(app.getPath("logs"), "./electron.log");
initLogger(loggerPath);

主进程使用

主进程使用比较简单,如下

// logger
import { Logger } from "qiao-x-logger";
const logger = Logger("sips.js");

logger.info("iconutil", "success");

渲染进程使用

渲染进程使用需要通过ipc将日志传递到主进程后记录

1. 初始化主进程ipc监听

// log ipc
import { logIPCInit } from "qiao-x-logger";

logIPCInit();

2. preload相关代码

log-preload.js

// electron
import { ipcRenderer } from "electron";

/**
 * logIPC
 * @param {*} msg
 * @param {*} type debug,info,warn,error
 */
export const logIPC = (msg, type) => {
  ipcRenderer.send("ipc-log", { msg, type });
};

preload.js

// electron
import { contextBridge } from "electron";

// custom preload
import { logIPC } from "./log-preload.js";

// preload
contextBridge.exposeInMainWorld("electron", {
  logIPC,
});

3. 渲染进程使用

window.electron.logIPC(`selectPngPath filePath ${filePath}`, "info");

【效果】

写日志后会在logPath下生成日志文件,并按小时分割日志文件,

输出效果如下:

相关推荐

Electron-开发实践:注册快捷键

【前言】 本文介绍一下electron应用中如何注册快捷键 【主进程】 主进程注册快捷键比较简单,需要注意的是在app ready后使用, 常见键盘映射: https://www.electronjs.org/docs/latest/api/accelerator 另外在推出app时需要将所有注册的

Electron-开发实践:几种更新方式

【前言】 Electron开发桌面APP后, 接着涉及一个问题就是如何更新后续的版本, 本文介绍几种更新的方式。 【Electron架构】 用Electron开发的桌面APP, 其实包含几个部分: 1\. Electron本身的环境 2\. 主进程,主进程中又分为Nodejs部分,和非Nodejs部

Electron-开发实践:定制Mac菜单

【前言】 前面几篇文章讲了从开发electron应用到mac打包, 相关文章: 一篇文章学会Electron Electron开发实践:本地数据库SQLite Electron开发实践:使用Monorepo管理Electron项目 Electron开发实践:Mac打包 Electron开发实践:注册

Electron-开发实践:包体积精简

【前言】 前面几篇文章讲了从开发electron应用到mac打包, 相关文章: 一篇文章学会Electron Electron开发实践:本地数据库SQLite Electron开发实践:使用Monorepo管理Electron项目 Electron开发实践:Mac打包 Electron开发实践:注册

Electron-开发实践:DMG安装包定制

【前言】 dmg文件是mac端常见的安装包格式, 前面几篇文章已经使用electron开发并打包好一个应用了, 本文主要讲下定制dmg安装包, 前面几篇文章: 一篇文章学会Electron Electron开发实践:本地数据库SQLite Electron开发实践:使用Monorepo管理Elect

© 2026 vincentqiao.com . 保留所有权利。