将电子 devtools 中的日志保存到文件中

tar*_*man 1 javascript logging electron angular5

我正在使用 angular 5 的 Electron 应用程序进行渲染,有没有办法以编程方式导出控制台?

我需要一种将日志数据同步到文件的方法,因此我可以随时查看它而无需打开电子开发工具并另存为选项,我需要以编程方式

我保存自己的日志,但是如果有一个模块记录错误,我需要获取整个控制台日志历史记录并将其导出到日志文件

Cef*_*old 5

您可以使用电子日志,它是电子应用程序的日志记录模块。它可以在没有电子的情况下使用。你应该使用ngx-electron


首先,安装 electron-log

npm install electron-log
Run Code Online (Sandbox Code Playgroud)

在电子的主要过程中需要它。

const logger = require('electron-log');
Run Code Online (Sandbox Code Playgroud)

然后安装 ngx-electron

npm install ngx-electron
Run Code Online (Sandbox Code Playgroud)

ngx-electron正在公开一个名为的模块NgxElectronModule,该模块需要在您的AppModule.

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {NgxElectronModule} from 'ngx-electron';
import {AppComponent} from './app.component';

@NgModule({
    declarations: [],
    imports: [
      BrowserModule,
      NgxElectronModule
    ],
    bootstrap: [AppComponent]
})
export class AppModule {

}
Run Code Online (Sandbox Code Playgroud)

导入模块后,您可以轻松地使用 angular DI 来请求ElectronService.

import {Component} from '@angular/core';
import {ElectronService} from 'ngx-electron';

@Component({
  selector: 'my-app',
  templateUrl: 'app.html'
})
export class AppComponent {

    logger

    constructor(private _electronService: ElectronService) { 
        // this should be in init()
        if(this._electronService.isElectronApp) {
            this.logger = this._electronService.remote.require("electron-log");
        }
    }

    public testLogger() {
        this.logger.info('this is a message from angular');
    }
}
Run Code Online (Sandbox Code Playgroud)

之后,您应该可以electron-log在您的组件中使用,只需记住import {ElectronService} from 'ngx-electron';this.logger = this._electronService.remote.require("electron-log");在组件中。