electron 在哪里可以找到生产中的电子应用程序的日志?

s5a0g9ez  于 2022-12-16  发布在  Electron
关注(0)|答案(2)|浏览(330)

我用Electron开发了一个应用程序,用Electron-Builder创建了一个Squirrel windows安装程序和更新程序,一切都很好,但是我在调试我的应用程序的生产版本时遇到了麻烦。
当使用生产版本时,console.log创建的日志是否写入磁盘的某个位置?如果是,我可以在哪里找到它们?或者在编译可执行文件时,这些日志是否都被删除了?我的应用程序一定有某种类型的日志文件,对吗?
我在C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog中找到了SquirrelSetupLog,但这不足以调试我的生产专用问题。
刚刚遇到了electron-log。如果常规的控制台日志确实没有写到磁盘的某个地方,这可能会起作用。

gt0wga4j

gt0wga4j1#

如果您指的是来自Web应用程序内的控制台,则以下内容适用:)
您需要进行回拨才能使此功能正常工作。请在此处阅读有关它们的详细信息: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,以便“更好地”记录日志和写入磁盘,但是您总是需要使用回调。

evrscar2

evrscar22#

你可以告诉node将stdout写入一个文件,如下所示:https://stackoverflow.com/a/33898010/4418836
Squirrel输出的exe是一个 * 安装程序 * -而不是应用程序,正如你提到的,它会把你的实际应用程序(安装后)放在C:\Users\YOUR_NAME\AppData\Local\YOUR_APP中。
因此,当您运行exe时,当前工作目录将是AppData\Local目录(而不是您运行安装程序的目录)。
因此,在让node将stdout输出到一个文件之后,在该目录中查找日志。

相关问题