web-dev-qa-db-fra.com

Où puis-je trouver les journaux de mon application Electron en production?

J'ai construit une application avec Electron et utilisé Electron-Builder pour créer un programme d'installation et de mise à jour Squirrel windows. Tout fonctionne très bien mais j'ai du mal à déboguer la version de production de mon application.

Les journaux sont-ils créés par un console.log écrit quelque part sur le disque lors de l'utilisation de la version de production? Si oui, où puis-je les trouver? Ou sont-ils tous supprimés lors de la compilation de l'exécutable? Il doit y avoir une sorte de fichier journal pour mon application, non?

J'ai trouvé SquirrelSetupLog dans C:\Users\Tieme\AppData\Local\MyApp\SquirrelSetupLog mais ce n'est pas suffisant pour déboguer mon problème de production uniquement.


Je viens de tomber électron-log . Cela pourrait fonctionner si les journaux réguliers de la console ne sont en effet pas écrits sur le disque quelque part.

13
Tieme

Si vous voulez dire console à partir de la webapp, alors cela s'applique :)

Vous devez effectuer un rappel pour que cela fonctionne. En savoir plus à leur sujet ici: http://electron.atom.io/docs/api/remote/

Voici un petit exemple:

Dans un fichier à côté de votre électron main.js, nommé logger.js, ajoutez ce code:

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

Et puis dans votre webapp, utilisez ceci pour appeler ce rappel de méthode de journal:

// 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!');

Vous pouvez également consulter https://www.npmjs.com/package/electron-log pour une "meilleure" journalisation et écriture sur le disque. Mais vous devez toujours utiliser des rappels.

Ancienne question, mais j'ai trouvé pratique de configurer cela dans package.json (cela s'applique à la console du processus principal)

 "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"
  }

Vous pourriez le développer un peu, comme obtenir le chemin/tmp/quelque part, mais vous avez l'idée :)

Je conseillerais sur la réponse acceptée, et en général sur l'appel constant de "main" à partir du moteur de rendu: la surcharge de ce changement de contexte est assez grande, et peut même être énorme si vous connectez des objets JSON qui doivent être stringifiés et analysés de nouveau dans le voyage. Votre moteur de rendu fonctionnera avec un frein à main!

1
rupps