Packages

Logging service for Erlang Applications.

Current section

Files

Jump to
erlogger src erlogger.erl
Raw

src/erlogger.erl

-module(erlogger).
-behavior(application).
-export([start/2,
start_logger/2,
start_anonymous/1,
log/2,
log/3,
log_surely/2,
log_surely/3,
stop_logger/1,
stop/1,
monitor_logger/1]).
start(normal, _Args) ->
erlogger_sup:start_link().
start_logger(Name, File) ->
gen_server:call(erlogger, {start_logger, Name, File}).
start_anonymous(File) ->
gen_server:call(erlogger, {start_anonymous_logger, File}).
monitor_logger({anonymous, Pid}) ->
monitor(process, Pid);
monitor_logger(Name) ->
monitor(process, whereis(Name)).
% Logger can be a logger name or anonymous tuple
log(Logger, Message) ->
log(Logger, Message, []).
log(Logger, Message, Args) ->
erlogger_worker:log(Logger, Message, Args).
log_surely(Logger, Message) ->
log_surely(Logger, Message, []).
log_surely(Logger, Message, Args) ->
erlogger_worker:log_surely(Logger, Message, Args).
stop_logger({anonymous, Pid}) ->
exit(Pid, shutdown);
stop_logger(Name) ->
Pid = whereis(Name),
unregister(Name),
exit(Pid, shutdown).
stop(_) ->
gen_server:call(erlogger, shutdown),
ok.