檢視原始碼 Logger.Translator 行為 (Logger v1.16.2)
Erlang 記錄訊息的預設翻譯。
Logger 允許開發人員透過提供翻譯器,將 OTP 應用程式提供的記錄訊息改寫成與 Elixir 記錄訊息更相容的格式。
翻譯器只是一個包含模組和函式的元組,可透過 Logger.add_translator/1
和 Logger.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 翻譯的預設訊息。
摘要
回呼
翻譯記錄訊息的回呼。
回呼
@callback translate(Logger.level(), Logger.level(), :format | :report, :logger.report()) :: {:ok, iodata(), keyword()} | {:ok, iodata()} | :skip | :none
翻譯記錄訊息的回呼。