📦 logger
一種封裝的記錄器,用於以語意化方式格式化主機訊息。
建議 Docusaurus 生態系統中的套件作者使用這個套件,以提供統一的記錄格式。
API
預設輸出為單一物件:logger
。logger
有以下屬性
- 一些有用的顏色。
紅色
黃色
綠色
粗體
暗
- 格式化工具。這些函式都具有簽章
(msg: unknown) => string
。請注意,它們的強制實現並非保證。您只應關注它們的語意。路徑
:格式化檔案路徑。網址
:格式化 URL。名稱
:格式化識別碼。程式碼
:格式化程式碼片段。壓制
:壓制文字。數字
:格式化數字。
內插
函式。它是一個樣板文字標籤。語法可見如下。- 記錄功能。所有記錄功能都可以當作一般函式使用(類似於
console.log
函式家族,但只接受一個參數),或當作樣板文字標籤使用。資訊
:列印資訊。警告
:列印應注意的警告。錯誤
:列印錯誤(不一定是停止程式執行)表示發生重大問題。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=
:path
url=
:url
name=
:name
code=
:code
subdue=
:subdue
number=
:num
如果運算式是一個陣列,它會根據 `\n- ${array.join('\n- ')}\n`
格式化 (請注意它會自動在行首加上換行符號)。每個成員都會自行格式化,而項目符號不會被格式化。因此,你會看到以上訊息列印為