跳至主要內容
版本:3.5.2

📦 logger

一種封裝的記錄器,用於以語意化方式格式化主機訊息。

建議 Docusaurus 生態系統中的套件作者使用這個套件,以提供統一的記錄格式。

API

預設輸出為單一物件:loggerlogger 有以下屬性

  • 一些有用的顏色。
    • 紅色
    • 黃色
    • 綠色
    • 粗體
  • 格式化工具。這些函式都具有簽章 (msg: unknown) => string。請注意,它們的強制實現並非保證。您只應關注它們的語意。
    • 路徑:格式化檔案路徑。
    • 網址:格式化 URL。
    • 名稱:格式化識別碼。
    • 程式碼:格式化程式碼片段。
    • 壓制:壓制文字。
    • 數字:格式化數字。
  • 內插函式。它是一個樣板文字標籤。語法可見如下。
  • 記錄功能。所有記錄功能都可以當作一般函式使用(類似於 console.log 函式家族,但只接受一個參數),或當作樣板文字標籤使用。
    • 資訊:列印資訊。
    • 警告:列印應注意的警告。
    • 錯誤:列印錯誤(不一定是停止程式執行)表示發生重大問題。
    • success:印出成功訊息。
  • report 函式。它會取得 ReportingSeverity 值 (ignorelogwarnthrow),然後根據嚴重性回報訊息。
有關 error 格式器的說明

請注意,error 訊息即使不會中斷程式,也可能會造成混淆。當使用者檢視記錄並找到 [ERROR] 時,即使建置成功,他們也會假設有錯誤發生。請謹慎使用。

Docusaurus 只有在印出訊息前立即拋出錯誤,或是使用者將 onBrokenLink 等的回報嚴重性設定為 「error」 時,才會使用 logger.error

此外,warnerror 會為整個訊息加上顏色,以吸引更多注意力。如果你要印出行數多的說明文字來說明錯誤,最好使用 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` 格式化 (請注意它會自動在行首加上換行符號)。每個成員都會自行格式化,而項目符號不會被格式化。因此,你會看到以上訊息列印為

Some text output in the terminal, containing array, code, name, and number formatting