Current section
Files
Jump to
Current section
Files
lib/logger/behaviour.ex
defmodule Argos.Logger.Behaviour do
@moduledoc """
Behaviour para implementaciones de logger en Argos.
Define el contrato que deben implementar los loggers personalizados.
"""
@doc """
Registra un mensaje de log con el nivel y metadata especificados.
## Parámetros
* `level` - Nivel de log (`:debug`, `:info`, `:warning`, `:error`, etc.)
* `message` - Mensaje a registrar (string)
* `metadata` - Metadata adicional (keyword list)
## Retorna
`:ok` - Siempre retorna `:ok`
## Ejemplos
def log(:info, "Mensaje informativo", [module: MyModule])
# => :ok
"""
@callback log(Logger.level(), String.t(), keyword()) :: :ok
@doc """
Registra un mensaje de log en modo raw.
El modo raw permite calcular el tamaño del TUI y posicionar los logs
debajo del TUI. Esta función es opcional y solo se llama si está implementada.
## Parámetros
* `level` - Nivel de log (`:debug`, `:info`, `:warning`, `:error`, etc.)
* `message` - Mensaje a registrar (string)
* `metadata` - Metadata adicional (keyword list)
## Retorna
`:ok` - Siempre retorna `:ok`
## Nota
Esta función es opcional. Si no se implementa, se usará `log/3` en su lugar.
"""
@optional_callbacks log_raw: 3
@callback log_raw(Logger.level(), String.t(), keyword()) :: :ok
end