我使用Electron构建了一个应用,并使用Electron-Builder创建了一个Squirrel Windows安装程序和更新程序。这一切都很好,但我无法调试我的应用程序的生产版本。
使用生产版本时,console.log
创建的日志是否写在磁盘上?如果是这样,我在哪里可以找到它们?或者在编译可执行文件时是否全部删除了?我的应用必须有某种日志文件吗?
我在C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog
找到了SquirrelSetupLog,但这还不足以调试我的生产问题。
刚遇到electron-log。如果常规控制台日志确实没有写入磁盘某处,那可能会有效。
答案 0 :(得分:5)
如果您指的是来自webapp的控制台,那么这适用于:)
您需要进行回调才能正常工作。在这里阅读更多相关信息:http://electron.atom.io/docs/api/remote/
这是一个简短的例子:
在您的电子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!');
您可能还想查看https://www.npmjs.com/package/electron-log以获取“更好”的日志记录并写入磁盘。但是你总是需要使用回调。
答案 1 :(得分:0)
老问题,但是我发现在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"
}
您可能需要详细说明,例如从某处获取/ tmp /路径,但您会明白这一点:)
对于建议的答案,我通常会提出建议,并且通常会不断从渲染器调用“ main”:此上下文更改的开销相当大,如果您记录了必须进行字符串化处理的JSON对象,则开销甚至可能很大在旅途中解析。您的渲染器将与手刹一起运行!