我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

electron在打包之后,如果想继续调试debug的话,渲染进程可以定义一个f12快捷键,再次打开开发者工具。但是,问题也并没有得到完整的解决。那就是:主进程呢?electron的主进程,在打包之后,如何调试?本文中,苏南大叔给出一个可能的解决方案,可以用于粗略的跟踪打包之后的electron的主进程情况。

苏南大叔:打包之后,electron 主进程调试利器:electron-log 使用方法 - electron-log
打包之后,electron 主进程调试利器:electron-log 使用方法(图5-1)

本解决方案的主角名叫electron-log,本文测试环境:mac/electron@3/electron-log@2.2.17

下载electron-log

electron-log,截至到发文,最新版本号是:2.2.17。其github页面地址是:

苏南大叔:打包之后,electron 主进程调试利器:electron-log 使用方法 - electron-log-github
打包之后,electron 主进程调试利器:electron-log 使用方法(图5-2)

不过,一般来说,对于npm的包,一般是通过命令行下载安装的,并不是直接下载tar.gz文件。安装命令如下:

npm i electron-log --save

苏南大叔:打包之后,electron 主进程调试利器:electron-log 使用方法 - npm-i-d
打包之后,electron 主进程调试利器:electron-log 使用方法(图5-3)

因为-D--save-dev的意思,而最终打包的时候,这种依赖包是不会打包进去的。所以,是选择--save还是--save-dev,请谨慎选择。

如何使用electron-log

electron-log的使用方式,是比较简单的。下面是官方推荐的使用方式:

var log = require('electron-log');
log.error("error");
log.warn("warn");
log.info("info");
log.verbose("verbose");
log.debug("debug");
log.silly("silly");

不过,官方提供的使用方式,有个不大不小的坑。那就是:
对于本文中,electron打包之后,还可以查看log的目的来说。默认情况下,只有errorwarn是可以被感知到的,更常用的info却不能被记录。这个就是因为,这个包有个错误分级的概念,就像linux下面的命令行的错误分级输出一样。

苏南大叔:打包之后,electron 主进程调试利器:electron-log 使用方法 - log-level
打包之后,electron 主进程调试利器:electron-log 使用方法(图5-4)

所以,如果想更好地使用这个包,实际上应该对上述代码做些细微的调整:

newsn.net:这里是【评论】可见内容

查看log方式

正常情况下来说,electron-log的输出方式有两种,一种是log.log文件,另外一种是console输出。当然,官方也提供了相关的方法,把日志信息输出到别的流中。不过,这个问题,并不在本文的讨论范围内。

苏南大叔:打包之后,electron 主进程调试利器:electron-log 使用方法 - log-file
打包之后,electron 主进程调试利器:electron-log 使用方法(图5-5)

console输出

对于console中的输出,无论log的级别是怎么定义的,是默认输出到console的。不过,打包之后的electron,本来也看不到console输出。所以,苏南大叔,在这里禁用了console的这种情况。

log.transports.console.level = false; 

log.log日志文件输出

默认log.log日志文件位置输出位置是:
linux

~/.config/<app name>/log.log

mac:

~/Library/Logs/<app name>/log.log

windows:

%USERPROFILE%\AppData\Roaming\<app name>\log.log

值得注意的是:输出到文件的时候,log.log的日志输出默认级别是warn。也就是说,最常被使用的info()是不会被输出的,这是个小坑。所以,可以使用下面的代码,修改输出到文件的时候,默认的输出日志级别。

log.transports.console.level = 'silly';

对于log.log日志的查看,个人建议使用各自系统自带的log日志工具查看,体验上会更好一些。当然了在终端下,使用vi或者tail等命令查看,也是可以的,这里不做更多说明。

输出日志到其他及日志格式

官方提供了transport的改写方案,用于修改默认行为。不过,苏南大叔没有相关需求,所以,暂时仅作记录。具体请查看下面的网页上的说明:

总结

electron-log在主进程中的使用方式,就是本文所描述的了。灵活地使用这款electron-log,就可以在electron打包之后,再次去探寻主进程的相关逻辑走向了。加油,少年!

想查看苏南大叔的更多electron的文章么?请点击下面的链接查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   electron    log