输出日志 (Logger)
TIP
提供此服务的插件:@cordisjs/plugin-logger。
这是一个内置插件,无需在配置文件中声明。
日志类型与等级
Logger 服务提供了 5 种日志类型:
error
: 错误 (1)success
: 成功 (1)warn
: 警告 (2)info
: 信息 (2)debug
: 调试 (3)
你可以在 ctx.logger
或 ctx.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!')