Timber v0.4.5 Timber.Event behaviour

A common interface for working with Timber events. That is, anything that implements the Timber.Eventable protocol.

Summary

Functions

Convenience method for getting the message and metadata in one call

Extracts the message from the event

Convenience method for keying the metadata with :timber_event

Types

message()
metadata()
metadata :: [{:timber_event, Timber.Eventable.t}]
t()
t ::
  Events.ControllerCallEvent |
  Events.CustomEvent |
  Events.ExceptionEvent |
  Events.HTTPRequestEvent |
  Events.HTTPResponseEvent |
  Events.SQLQueryEvent |
  Events.TemplateRenderEvent

Functions

logger_tuple(data)
logger_tuple(Timber.Eventable.t) :: {message, metadata}

Convenience method for getting the message and metadata in one call.

  require Logger
  {message, metdata} = Timber.Event.logger_tuple(data)
  Logger.info(message, metdata)

This is equivalent to:

  require Logger
  event = Timber.Eventable.to_event(data)
  message = Timber.Event.message(event)
  Logger.info(message, timber_event: event)

In future versions of Elixir, a logger passed function can return this tuple. See https://github.com/elixir-lang/elixir/pull/5447. Once available, you’ll be able to do:

  # Warning, the below code will not work until the above PR is released!
  require Logger
  Logger.info fn -> Timber.Event.logger_tuple(event) end
message(data)

Extracts the message from the event.

Using custom events? Simple define a message/1 method or add a :message attribute.

metadata(data)

Convenience method for keying the metadata with :timber_event.

Callbacks

message(t)
message(t) :: message