View Source LoggerWebhookBackend (logger_webhook_backend v0.0.3)

LoggerWebhookBackend is a custom logger backend for Logger that sends logs to a specified webhook URL.

Testing has only taken place on Discord webhooks.

Configuration

LoggerWebhookBackend can be configured in your config.exs file:

config :logger,
  backends: [{LoggerWebhookBackend, :webhook_logger}]

config :logger, :webhook_logger, level: :error

Environment variables can be set in your runtime.exs file:

config :logger, :webhook_logger,
  webhook_url: System.get_env("WEBHOOK_URL")

Summary

Functions

Format a log message for markdown enabled webhooks. Used internally by log_to_discord/5.

Callback implementation for :gen_event.handle_call/2.

Callback implementation for :gen_event.handle_info/2.

Callback implementation for :gen_event.init/1.

Send a log message to a Discord webhook URL.

Functions

format_message(log_level, message, timestamp, metadata)

@spec format_message(
  log_level ::
    :debug
    | :info
    | :notice
    | :warning
    | :error
    | :critical
    | :alert
    | :emergency,
  message :: iodata(),
  timestamp :: DateTime.t(),
  metadata :: map()
) :: iodata()

Format a log message for markdown enabled webhooks. Used internally by log_to_discord/5.

handle_call(arg, state)

Callback implementation for :gen_event.handle_call/2.

handle_event(arg1, state)

Callback implementation for :gen_event.handle_event/2.

handle_info(_, state)

Callback implementation for :gen_event.handle_info/2.

init(arg)

Callback implementation for :gen_event.init/1.

log_to_discord(webhook_url, log_level, message, timestamp, metadata)

@spec log_to_discord(
  webhook_url :: String.t(),
  log_level ::
    :debug
    | :info
    | :notice
    | :warning
    | :error
    | :critical
    | :alert
    | :emergency,
  message :: iodata(),
  timestamp :: DateTime.t(),
  metadata :: map()
) :: :ok | {:error, term()}

Send a log message to a Discord webhook URL.