🖌️
ngxs
  • 介绍
  • 入门
    • 为什么使用ngxs
    • 安装
  • 概念
    • 介绍
    • 存储(Store)
    • 动作(Actions)
    • 状态(State)
    • 选择(Select)
  • 高级
    • 动作处理程序
    • 动作的生命周期
    • 取消
    • 组合
    • 错误处理
    • Ivy迁移指南
    • 延迟加载
    • 生命周期
    • 映射子状态
    • 元归约器
    • 优化选择器
    • 选项
    • 共享状态
    • 状态令牌
    • 状态操作
    • 子状态
  • 菜单
    • 认证
    • 缓存
    • NGXS的组件事件
    • 防抖动动作
    • 动态插件
    • 不可变数据助手
    • 设计指南
    • 单元测试
  • 插件
    • 介绍
    • CLI
    • Logger
    • Devtools
    • Storage
    • Forms
    • Web Socket
    • Router
    • HMR
  • NGXS实验室
    • 介绍
  • 社区
    • FAQ
    • 资源
    • 贡献者
    • 贡献
    • 赞助商
  • 变更日志
Powered by GitBook
On this page
  • 安装
  • 用法
  • 选项
  • 注意事项

Was this helpful?

  1. 插件

Logger

一个简单的控制台日志插件,用于记录操作的处理过程。

安装

npm install @ngxs/logger-plugin --save

# or if you are using yarn
yarn add @ngxs/logger-plugin

用法

将 NgxsLoggerPluginModule 插件添加到您的根应用程序模块中:

import { NgxsModule } from '@ngxs/store';
import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';

@NgModule({
  imports: [NgxsModule.forRoot([]), NgxsLoggerPluginModule.forRoot()]
})
export class AppModule {}

选项

该插件支持以下通过 forRoot 方法传递的选项:

  • logger: 提供其他不同的记录器,对于记录到后端很有用。 默认为console。

  • collapsed: 默认情况下是否折叠日志。默认为 true.

  • disabled: 在生产环境禁用日志。 默认为 false.

  • filter: 过滤要记录的动作。将动作和状态快照作为参数。 默认所有动作均返回 true.

import { NgxsModule, getActionTypeFromInstance } from '@ngxs/store';
import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';
import { environment } from '../environments/environment';
import { customLogger } from './path/to/custom/logger';
import { SomeAction } from './path/to/some/action';

@NgModule({
  imports: [
    NgxsModule.forRoot([]),
    NgxsLoggerPluginModule.forRoot({
      // Use customLogger instead of console
      logger: customLogger,
      // Do not collapse log groups
      collapsed: false,
      // Do not log in production mode
      disabled: environment.production,
      // Do not log SomeAction
      filter: action => getActionTypeFromInstance(action) !== SomeAction.type
    })
  ]
})
export class AppModule {}

filter 将状态快照作为第二个参数。对于一些特殊情况这很有用。但是,请注意以下事实:每个调度的动作调用都会调用它。 您可以考虑将带有记忆功能的方法用于过滤器,而不是简单的操作比较。

注意事项

您应该始终将日志作为配置中的最后一个插件。 例如,如果要在存储插件之类的插件之前添加logger,则初始状态将不会得到体现。

PreviousCLINextDevtools

Last updated 4 years ago

Was this helpful?