electron-log@5 的使用

无需 ipc,使用 electron-log@5

我们使用一个开源软件,一般都是通过搜索示例或教程来学习如何使用。可是如果一个软件发生过不兼容的变更,而网络上一般都是些旧的做法,这样就会给我们带来非常大的心智负担。

因此我建议有志之士尽量去看官方文档,即使它可能是英语,或者没有太好的示例,仍然要去看,而不是被一些没头没尾或者抄来抄去的博客耽误你的时间。

Electron 的官方文档就非常得不详细,它也在 main,preload,renderer 这一块变过很多次,详情可以看看博客中的上一篇文章《在 webapck+electron+typescript中使用go开发的node插件》。

本文说说一个常用的日志小工具 electron-log 的使用(基于 5.1.4)。

  1. 引入
    1npm i electron-log
    
  2. 自己定义一个 logger.ts(也可以在 main.ts 中直接定义)
    1import log from 'electron-log/main';
    2log.transports.console.level = false; // 控制台关闭输出(只输出到文件)
    3log.transports.file.level = 'silly';
    4log.transports.file.maxSize = 1002430; // 文件最大不超过 1M
    5log.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}';
    6const date = new Date();
    7const dateStr = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
    8log.transports.file.resolvePathFn = () => 'log\\' + dateStr + '.log'; // 在程序的安装目录(生产),或代码根目录(开发)的 log 文件夹下打印日志。忘掉 %USERPROFILE%\AppData\... 吧
    9export default log;
    
  3. 在 main.ts 中引入 logger
    1import logger from '_main/logger'; // 路径自己修改一下到你的 logger.ts,本文已做简化
    2logger.initialize(); // 在任何 logger 使用之前执行
    
  4. 在 preload 或者 renderer 进程中使用
    1import logger from "_main/logger"; // 路径自己修改一下到你的 logger.ts,本文已做简化
    2logger.log("一行日志")
    

旧的方法比如使用 ipc 等,在老版本是可以用的。但是在 5.1.4 版本,打包后的程序会无法打印日志。

https://github.com/megahertz/electron-log/blob/master/docs/migration.md