Current section
Files
Jump to
Current section
Files
lib/logger_statsd_logger.ex
defmodule LoggerStatsdLogger do
@moduledoc """
The genevent logger
"""
use GenEvent
@spec init(map) :: map
def init({__MODULE__, name}) do
{:ok, %{name: name, level: :error}}
end
@spec handle_call(any, map) :: map
def handle_call({:configure, [level: level]}, state) do
state = Map.put(state, :level, level)
{:ok, :ok, state}
end
@spec handle_event(any, map) :: map
def handle_event({level, _gl, {Logger, _, _, _}}, %{level: min_level} = state) do
if (is_nil(min_level) or Logger.compare_levels(level, min_level) != :lt) do
LoggerStatsd.Buffer.incr(level)
end
{:ok, state}
end
end