From 5cab2d8368cc05a0b859850680cd04fdb95f1e24 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Wed, 13 Jun 2018 22:09:05 -0700 Subject: [PATCH] Add a wrapper to allow lager to install a sys trace function --- src/lager.erl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lager.erl b/src/lager.erl index 10d703e..6f7d509 100644 --- a/src/lager.erl +++ b/src/lager.erl @@ -31,6 +31,7 @@ md/0, md/1, rotate_handler/1, rotate_handler/2, rotate_sink/1, rotate_all/0, trace/2, trace/3, trace_file/2, trace_file/3, trace_file/4, trace_console/1, trace_console/2, + install_trace/2, remove_trace/1, trace_func/3, list_all_sinks/0, clear_all_traces/0, stop_trace/1, stop_trace/3, status/0, get_loglevel/1, get_loglevel/2, set_loglevel/2, set_loglevel/3, set_loglevel/4, get_loglevels/1, update_loglevel_config/1, posix_error/1, set_loghwm/2, set_loghwm/3, set_loghwm/4, @@ -44,6 +45,16 @@ %% API +trace_func({Pid, Level}=FuncState, Event, ProcState) -> + lager:log(Level, Pid, "TRACE ~p ~p", [Event, ProcState]), + FuncState. + +install_trace(Pid, Level) -> + sys:install(Pid, {fun ?MODULE:trace_func/3, {Pid, Level}}). + +remove_trace(Pid) -> + sys:remove(Pid, fun ?MODULE:trace_func/3). + %% @doc Start the application. Mainly useful for using `-s lager' as a command %% line switch to the VM to make lager start on boot. start() -> start(lager).