20

我用Electron构建了一个应用程序,并使用Electron-Builder创建了Squirrel Windows 安装程序和更新程序。这一切都很好,但我在调试我的应用程序的生产版本时遇到了麻烦。

使用生产版本时,日志是由console.log磁盘某处写入创建的吗?如果是这样,我在哪里可以找到它们?还是在编译可执行文件时全部删除?我的应用程序必须有某种日志文件,对吗?

我在其中找到了 SquirrelSetupLog,C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog但这还不足以调试我的仅生产问题。


刚遇到electron-log。如果确实没有将常规控制台日志写入某个地方的磁盘,那可能会起作用。

4

2 回答 2

9

如果您的意思是来自 webapp 的控制台,那么这适用:)

您需要进行回调才能使其正常工作。在此处阅读有关它们的更多信息:http: //electron.atom.io/docs/api/remote/

这是一个简短的例子:

在您的 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!');

您可能还想查看https://www.npmjs.com/package/electron-log以“更好地”记录和写入磁盘。但是你总是需要使用回调。

于 2017-01-27T13:24:51.027 回答
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 对象,甚至可能是巨大的旅行。您的渲染器将手刹运行!

于 2019-06-15T11:36:32.660 回答