📦 日志记录器
一个用于语义化格式化控制台消息的封装日志记录器。
鼓励 Docusaurus 生态系统中包的作者使用此包来提供统一的日志格式。
API
它将单个对象作为默认导出导出:logger。logger 具有以下属性:
- 一些有用的颜色。
redyellowgreenbolddim
- 格式化程序。这些函数都具有签名
(msg: unknown) => string。请注意,它们的实现并非保证不变。您只需要关心它们的语义。path:格式化文件路径。url:格式化 URL。name:格式化标识符。code:格式化代码片段。subdue:使文本变暗。num:格式化数字。
interpolate函数。它是一个模板字面量标签。语法如下所示。- 日志记录函数。所有日志记录函数都可以用作普通函数(类似于
console.log系列,但仅接受一个参数)或模板字面量标签。info:打印信息。warn:打印应注意的警告。error:打印错误(不一定停止程序),表示重大问题。success:打印成功消息。
report函数。它接受一个ReportingSeverity值(ignore、log、warn、throw)并根据严重性报告消息。
关于
error 格式化程序的一句话请注意,即使 error 消息不会挂起程序,也可能会导致混淆。当用户检查日志并发现 [ERROR] 时,即使构建成功,他们也会认为某些地方出错了。谨慎使用。
Docusaurus 仅在打印抛出错误之前的消息,或者用户将 onBrokenLink 等的报告严重性设置为 "error" 时才使用 logger.error。
此外,warn 和 error 将为整个消息着色,以便更好地引起注意。如果您正在打印关于错误的大块帮助文本,最好使用 logger.info。
使用模板字面量标签
模板字面量标签会评估嵌入的模板和表达式。interpolate 返回一个新字符串,而其他日志记录函数则打印它。下面是一个典型的用法:
import logger from '@docusaurus/logger';
logger.info`Hello name=${name}! You have number=${money} dollars. Here are the ${
items.length > 1 ? 'items' : 'item'
} on the shelf: ${items}
To buy anything, enter code=${'buy x'} where code=${'x'} is the item's name; to quit, press code=${'Ctrl + C'}.`;
嵌入式表达式前面可以选择性地加上 [a-z]+= 形式的标志(一些小写字母,后跟等号,直接位于嵌入式表达式之前)。如果表达式前面没有任何标志,则按原样打印出来。否则,它将使用以下格式化程序之一进行格式化:
path=:pathurl=:urlname=:namecode=:codesubdue=:subduenumber=:num
如果表达式是一个数组,则通过 `\n- ${array.join('\n- ')}\n` 进行格式化(注意它会自动获得一个前导换行符)。每个成员都单独格式化,并且项目符号不会格式化。因此,您将看到上面消息的打印结果如下:
