С помощью консоли.log() в приложении Electron
Как я могу записывать данные или сообщения на консоль в моем электронном приложении?
этот действительно базовый мир hello открывает инструменты dev по умолчанию, я не могу использовать console.log('hi')
. Есть ли альтернатива для электрона?
главная.js
var app = require('app');
var BrowserWindow = require('browser-window');
require('crash-reporter').start();
var mainWindow = null;
app.on('window-all-closed', function() {
// Mac OS X - close is done explicitly with Cmd + Q, not just closing windows
if (process.platform != 'darwin') {
app.quit();
}
});
app.on('ready', function(){
mainWindow = new BrowserWindow({ width: 800, height: 600});
mainWindow.loadUrl('file://' + __dirname + '/index.html');
mainWindow.openDevTools();
mainWindow.on('closed', function(){
mainWindow = null;
});
});
8 ответов:
console.log
работает, но где он регистрируется, зависит от того, вызываете ли вы его из основного процесса или процесса визуализации.если вы вызываете его из процесса визуализации (т. е. JavaScript, который включен из вашего
index.html
file)он будет зарегистрирован в окне dev tools.если вы вызываете его из основного процесса (т. е. в
main.js
) он будет работать так же, как и в узле - он будет входить в окно терминала. Если вы начинаете свой электронный процесс с Терминал с помощьюelectron .
вы можете увидеть вашиconsole.log
звонки от основного процесса.
вы также можете добавить переменную окружения в Windows:
ELECTRON_ENABLE_LOGGING=1
это вывод на консоль сообщения на ваш терминал.
существует другой способ входа в консоль изнутри процесса визуализации. Учитывая, что это электрон, вы можете получить доступ к собственным модулям узла. Это включает в себя
console
модуль.var nodeConsole = require('console'); var myConsole = new nodeConsole.Console(process.stdout, process.stderr); myConsole.log('Hello World!');
когда этот код запускается изнутри процесса визуализации, вы получите
Hello World!
в терминале, из которого вы запускали Электрон.см.https://nodejs.org/api/console.html для дальнейшей документации по
console
модуль.
еще одна возможность-доступ к основной консоли процесса с помощью
remote.getGlobal(name)
:const con = require('electron').remote.getGlobal('console') con.log('This will be output to the main process console.')
добавляя к ответу М. Дамиана, вот как я настроил его, чтобы я мог получить доступ к консоли основного процесса из любого рендерера:
в главном приложении добавить:
const electron = require('electron'); const app = electron.app; const console = require('console'); ... app.console = new console.Console(process.stdout, process.stderr);
в любом рендере вы можете добавить:
const remote = require('electron').remote; const app = remote.app; ... app.console.log('This will output to the main process console.');
Это продолжение ответа cscsandy5 для некоторой дополнительной информации, информации от здесь
process.stdout.write('your output to command prompt console or node js ')
этот код отлично подходит для простого вывода простого отладочного сообщения в окно терминала, из которого вы запустили приложение electron, и это то, что консоль.журнал строится сверху.
вот пример фрагмента (на основе tutorialspoint electon tutorial) сценария jQuery, который будет писать Привет терминалу при каждом нажатии кнопки (предупреждение: вам нужно добавить свои собственные разрывы строк в строк!)
let $ = require('jquery') var clicks = 0; $(function() { $('#countbtn').click(function() { //output hello <<<<<<<<<<<<<<<<<<<<<<< process.stdout.write('hello') $('#click-counter').text(++clicks); }); $('#click-counter').text(clicks); });
вы можете использовать пакет npm electron-log https://www.npmjs.com/package/electron-log
он будет регистрировать вашу ошибку, предупреждать, информацию, подробные, отладочные, глупые выходы в вашем собственном журнале ОС.
var log = require('electron-log'); log.info('Hello, log'); log.error('Damn it, an error');