Skip to content

输出日志 (Logger)

TIP

提供此服务的插件:@cordisjs/plugin-logger。

这是一个内置插件,无需在配置文件中声明。

日志类型与等级

Logger 服务提供了 5 种日志类型:

  • error: 错误 (1)
  • success: 成功 (1)
  • warn: 警告 (2)
  • info: 信息 (2)
  • debug: 调试 (3)

你可以在 ctx.loggerctx.logger(name) 上调用这些方法。

不同的日志类型对应不同的等级。日志是否输出取决于日志的等级。默认情况下,输出到控制台的日志等级为 2,这将忽略 DEBUG 级别的日志。

配置拦截

config.name

  • 类型: string
  • 默认值: hyphenate(ctx.name)

默认情况下的日志名称。如果未指定,则使用插件的名称。

插件作者可以为插件指定一个默认的日志名称。例如:

ts
// 默认的日志名称为 web-ui-service,这里手动设置为了 webui
@
Inject
('logger', true, {
name
: 'webui' })
class
WebUIService
extends
Service
{}

当然,也可以使用下面的 ctx.logger(name) 方法来动态指定日志名称。

config.level

  • 类型: number
  • 默认值: 2 (INFO)

默认显示的日志等级。例如,设置为 3 将会显示 DEBUG 级别的日志。

实例方法

ctx.logger[method](format, ...params)

  • method: Method 日志类型
  • format: string 格式化字符串
  • params: any[] 格式化参数

输出日志。格式化字符串的使用方法与 console.log 类似。

ctx.logger(name?)

  • name: string 日志名称,默认为 config.name
  • 返回值: Logger

创建带有给定名称的日志实例。此方法返回的日志实例可以进一步调用上述方法。

ts
const 
logger
=
ctx
.
logger
('custom')
logger
.
info
('Hello, world!')