查看源代码 Logger.Translator 行为 (日志 v1.16.2)
Erlang 日志消息的默认翻译。
Logger 允许开发者通过提供一个翻译器,将 OTP 应用程序提供的日志消息重写为更兼容 Elixir 日志消息的格式。
翻译器只是一个包含模块和函数的元组,可以通过 Logger.add_translator/1
和 Logger.remove_translator/1
函数添加和删除,并对所有高于最小日志级别的 Erlang 消息进行调用,带有四个参数
min_level
- 当前日志级别level
- 正在翻译的消息的级别kind
- 消息是:report
还是:format
message
- 要格式化的消息。如果它是:report
,它是一个包含{report_type, report_data}
的元组,如果它是:format
,它是一个包含{format_message, format_args}
的元组。
该函数必须返回
{:ok, chardata, metadata}
- 如果消息翻译及其元数据{:ok, chardata}
- 翻译后的消息:skip
- 如果消息不应被翻译或记录:none
- 如果没有翻译,这将触发下一个翻译器
有关示例实现和 Logger 翻译的默认消息,请参见本模块中的函数 translate/4
。
摘要
回调
翻译日志消息的回调函数。
回调
@callback translate(Logger.level(), Logger.level(), :format | :report, :logger.report()) :: {:ok, iodata(), keyword()} | {:ok, iodata()} | :skip | :none
翻译日志消息的回调函数。