Current section
Files
Jump to
Current section
Files
lib/logger_lager_backend.ex
defmodule LoggerLagerBackend do
@behaviour :gen_event
@moduledoc """
A `lager` backend for `Logger`.
"""
@sink :lager_event
@truncation_size 4096
def init(__MODULE__) do
{:ok, nil}
end
def handle_call({:configure, _opts}, state) do
{:ok, :ok, state}
end
defp to_lager_level(:warn), do: :warning
defp to_lager_level(level), do: level
def handle_event({level, _groupleader, {Logger, message, _timestamp, metadata}}, state) do
:lager.dispatch_log(@sink, to_lager_level(level), metadata, '~ts', [message], @truncation_size, :safe)
{:ok, state}
end
def handle_event(:flush, state) do
# No real lager equivalent
{:ok, state}
end
# gen_event boilerplate
def handle_info(_msg, state) do
{:ok, state}
end
def terminate(_reason, _state) do
:ok
end
def code_change(_old, state, _extra) do
{:ok, state}
end
end