Current section
Files
Jump to
Current section
Files
src/lager_exometer_backend.erl
-module(lager_exometer_backend).
-behaviour(gen_event).
-export([init/1]).
-export([handle_call/2]).
-export([handle_event/2]).
-export([handle_info/2]).
-export([terminate/2]).
-export([code_change/3]).
-record(s, {level}).
%%%_ * gen_event callbacks ---------------------------------------------
init(Opts) ->
try
lager_exometer_backend_metrics:create()
catch
error:exists -> ok
end,
Level = proplists:get_value(level, Opts, info),
{ok, #s{level=lager_util:level_to_num(Level)}}.
terminate(_Rsn, _S) ->
ok.
handle_call({set_loglevel, Level}, S) ->
{ok, ok, S#s{level=lager_util:level_to_num(Level)}};
handle_call(get_loglevel, S) ->
{ok, S#s.level, S}.
%% lager 2.x
handle_event({log, Msg}, S) ->
case lager_util:is_loggable(Msg, S#s.level, {?MODULE, ?MODULE}) of
true ->
lager_exometer_backend_metrics:log_level(lager_msg:severity(Msg)),
{ok, S};
false -> {ok, S}
end.
handle_info(_Msg, S) ->
{ok, S}.
code_change(_OldVsn, S, _Extra) ->
{ok, S}.