Logging 在哪里可以找到我的Electron应用程序的生产日志?
我已经用构建了一个应用程序,并用于创建windows安装程序和更新程序。这一切都很好,但我在调试我的应用程序的生产版本时遇到了麻烦 使用生产版本时,Logging 在哪里可以找到我的Electron应用程序的生产日志?,logging,electron,electron-builder,squirrel.windows,Logging,Electron,Electron Builder,Squirrel.windows,我已经用构建了一个应用程序,并用于创建windows安装程序和更新程序。这一切都很好,但我在调试我的应用程序的生产版本时遇到了麻烦 使用生产版本时,console.log创建的日志是否写入磁盘上的某个位置?如果是,我在哪里可以找到它们?或者在编译可执行文件时,这些文件都被删除了吗?我的应用程序一定有某种日志文件,对吗 我在C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog中找到了SquirrelSetupLog,但这还不足以调试我的生产问题
console.log
创建的日志是否写入磁盘上的某个位置?如果是,我在哪里可以找到它们?或者在编译可执行文件时,这些文件都被删除了吗?我的应用程序一定有某种日志文件,对吗
我在C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog
中找到了SquirrelSetupLog,但这还不足以调试我的生产问题
只是偶然发现。如果常规控制台日志确实没有写入到某个磁盘上,那么这可能会起作用 如果您指的是webapp中的控制台,那么这适用于:) 您需要进行回调才能使其正常工作。请在此处阅读更多关于它们的信息: 下面是一个简短的例子: 在electron
main.js
旁边名为logger.js
的文件中,添加以下代码:
exports.log = (entry) => {
console.log(entry);
}
然后在您的webapp中,使用此函数调用此日志方法回调:
// This line gets the code from the newly created file logger.js
const logger = require('electron').remote.require('./logger');
// This line calls the function exports.log from the logger.js file, but
// this happens in the context of the electron app, so from here you can
// see it in the console when running the electron app or write to disk.
logger.log('Woohoo!');
您可能还希望查看“更好”的日志记录和磁盘写入。但您始终需要使用回调。这是一个老问题,但我发现在
package.json中配置它很方便(这适用于主进程的控制台)
您可能会对其进行一些详细说明,比如从某处获取/tmp/路径,但您得到了以下想法:)
对于公认的答案,我会提出一些建议,一般来说,要不断地从渲染器调用“main”:这种上下文更改的开销相当大,如果您记录必须在旅途中进行字符串化和解析的JSON对象,这种开销甚至会非常大。您的渲染器将使用手刹运行 是的,这意味着您必须提供自己的方式将这些日志写入磁盘,对吗?我明白了。只是希望console.log的输出会自动写入磁盘的某个地方。电子测井看起来不错。谢谢,是的。您可以使用electron中的日志包来实际编写日志文件,以使其更容易:)我找不到日志文件/logs。有人能帮忙吗?这是在Electron 6降落的。可能与新项目的人员相关。但这对这个问题并没有真正的帮助。您的解决方案未运行打包的应用程序。问题是如何从正在运行的打包应用程序中获取日志。哦,没错,不幸的是,这两个问题都不是公认的答案。我的技巧只是避免从渲染器到主进程的持续上下文更改和对象序列化。对于一个已经打包的应用程序,我认为如果不使用npm从控制台手动运行主进程的控制台输出,或者不修改package.json中的启动脚本,就无法访问主进程的控制台输出。
"main": "app/src/main.js",
"scripts": {
"postinstall": "install-app-deps",
"start": "npm install && electron . > /tmp/electron-app.log",
"pack": "build --dir",
"dist": "build",
"dist:win": "build --platform win32",
"dist:linux": "build --platform linux"
}