檢視原始碼 Logger.Translator 行為 (Logger v1.16.2)

Erlang 記錄訊息的預設翻譯。

Logger 允許開發人員透過提供翻譯器,將 OTP 應用程式提供的記錄訊息改寫成與 Elixir 記錄訊息更相容的格式。

翻譯器只是一個包含模組和函式的元組,可透過 Logger.add_translator/1Logger.remove_translator/1 函式新增和移除,並會針對高於最低記錄層級的每個 Erlang 訊息,以四個引數呼叫

  • min_level - 目前的 Logger 層級
  • level - 要翻譯的訊息層級
  • kind - 訊息是 :report 還是 :format
  • message - 要格式化的訊息。如果是 :report,它會是一個包含 {report_type, report_data} 的元組,如果是 :format,它會是一個包含 {format_message, format_args} 的元組。

函式必須傳回

  • {:ok, chardata, metadata} - 訊息翻譯及其元資料
  • {:ok, chardata} - 已翻譯的訊息
  • :skip - 訊息不應翻譯或記錄
  • :none - 沒有翻譯,會觸發下一個翻譯器

請參閱此模組中的函式 translate/4,以取得範例實作和 Logger 翻譯的預設訊息。

摘要

回呼

翻譯記錄訊息的回呼。

回呼

連結到此回呼

translate(level, level, arg3, report)

檢視來源
@callback translate(Logger.level(), Logger.level(), :format | :report, :logger.report()) ::
  {:ok, iodata(), keyword()} | {:ok, iodata()} | :skip | :none

翻譯記錄訊息的回呼。

函式

連結到此函式

translate(min_level, level, kind, message)

檢視來源

內建翻譯函式。