我们可以将 NgRx devtools 日志记录发送到自定义记录器吗

Can we send NgRx devtools logging to custom logger

我有一个支持 NgRx 的应用程序(目前 Angular 7),我按如下方式设置了 StoreDevTools:

 StoreDevtoolsModule.instrument({
  name: `MyApp DevTools`,
  maxAge: 25,
  logOnly: environment.production,
}),

我的应用有一个自定义记录器,可以将详细信息发送到自定义位置(而不是控制台)。

我的问题是,当 logOnly 设置为 true 时,我是否也可以让 NgRx 日志记录调用我自己的日志记录函数?

logOnly 具有来自 environment.production 的值,因此您可以根据 environment.production 值检查您的条件(如果您确定,您将分配 environment.productionlogOnly).

这是一个基于environment.production条件的简单记录器的例子:

function ownLogger(state, action) {
  console.log(state, action);
}
@NgModule({
  declarations: [AppComponent, MyCounterComponent],
  imports: [
    BrowserModule,
    StoreModule.forRoot({ count: counterReducer }),
    StoreDevtoolsModule.instrument({
      name: 'NgRx Demo App',
      logOnly: environment.production,
      monitor: (state, action) => {
        console.log(environment);
        if (environment.production) {
          ownLogger(state, action);
        }
      }
    })
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {}

An example (Angular 9)