Где я могу найти журналы для моего приложения Electron на производстве?

Я создал приложение с Electron и использовал Electron-Builder, чтобы создать Squirrel установщик и обновление. Все это отлично работает, но мне сложно отладить производственную версию моего приложения.

Являются ли журналы, созданные console.log записанными где-то на диске при использовании производственной версии? Если да, где я могу их найти? Или все они удаляются при компиляции исполняемого файла? Должен быть какой-то файл журнала для моего приложения?

Я нашел SquirrelSetupLog в C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog, но этого недостаточно для отладки моей производственной проблемы.


Просто наткнулся на electron-log. Это может работать, если обычные журналы журналов на самом деле не записаны на диск где-то..

Ответ 1

Если вы имеете в виду консоль из веб-приложения, то это относится :)

Вы должны сделать обратный вызов, чтобы это работало. Узнайте больше о них здесь: http://electron.atom.io/docs/api/remote/

Вот краткий пример:

В файле рядом с вашим электронным main.js именем logger.js добавьте этот код:

exports.log = (entry) => {
    console.log(entry);
}

А затем в вашем веб-приложении используйте это для вызова обратного вызова метода журнала:

// 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 для "лучшей" регистрации и записи на диск. Но вам всегда нужно использовать обратные вызовы.

Ответ 2

Старый вопрос, но я нашел удобным настроить это в 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, которые должны быть преобразованы в строку и проанализированы обратно в Поездка. Ваш рендерер будет работать с ручным тормозом!