View Source Logger.Translator behaviour (Logger v1.18.0-dev)
Default translation for Erlang log messages.
Logger allows developers to rewrite log messages provided by OTP applications into a format more compatible with Elixir log messages by providing a translator.
A translator is simply a tuple containing a module and a function
that can be added and removed via the Logger.add_translator/1
and
Logger.remove_translator/1
functions and is invoked for every Erlang
message above the minimum log level with four arguments:
min_level
- the current Logger levellevel
- the level of the message being translatedkind
- if the message is a:report
or:format
message
- the message to format. If it is:report
, it is a tuple with{report_type, report_data}
, if it is:format
, it is a tuple with{format_message, format_args}
.
The function must return:
{:ok, chardata, metadata}
- if the message translation with its metadata{:ok, chardata}
- the translated message:skip
- if the message is not meant to be translated nor logged:none
- if there is no translation, which triggers the next translator
See the function translate/4
in this module for an example implementation
and the default messages translated by Logger.
Summary
Callbacks
Callback for translating a logger message.
Functions
Built-in translation function.
Callbacks
@callback translate(Logger.level(), Logger.level(), :format | :report, :logger.report()) :: {:ok, iodata(), keyword()} | {:ok, iodata()} | :skip | :none
Callback for translating a logger message.
Functions
Built-in translation function.
This function is an implementation of the translate/4
callback.
For arguments and return value of this function, see that callback.