-
Notifications
You must be signed in to change notification settings - Fork 78
/
log4erl_sup.erl
74 lines (60 loc) · 1.64 KB
/
log4erl_sup.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
-module(log4erl_sup).
-author("Ahmed Al-Issaei").
-license("MPL-1.1").
-behaviour(supervisor).
-include("../include/log4erl.hrl").
%% API
-export([start_link/1]).
-export([add_logger/1]).
-export([add_guard/4]).
%% Supervisor callbacks
-export([init/1]).
start_link(Default_logger) ->
R = supervisor:start_link({local, ?MODULE}, ?MODULE, [Default_logger]),
%log4erl:start_link(Default_logger),
add_logger(Default_logger),
?LOG2("Result in supervisor is ~p~n",[R]),
R.
add_guard(Logger, Appender, Name, Conf) ->
C = {Name,
{logger_guard, start_link ,[Logger, Appender, Name, Conf]},
permanent,
10000,
worker,
[logger_guard]},
?LOG2("Adding ~p to ~p~n",[C, ?MODULE]),
supervisor:start_child(?MODULE, C).
add_logger(Name) when is_atom(Name) ->
N = atom_to_list(Name),
add_logger(N);
add_logger(Name) when is_list(Name) ->
C1 = {Name,
{log_manager, start_link ,[Name]},
permanent,
10000,
worker,
[log_manager]},
?LOG2("Adding ~p to ~p~n",[C1, ?MODULE]),
supervisor:start_child(?MODULE, C1).
%add_guard(N2).
%%======================================
%% supervisor callback functions
%%======================================
init([Default_logger]) ->
?LOG("Starting supervisor~n"),
%% No children to be added yet.
%% The default has to be added from log4erl
% start log4erl gen_server
_Child = {log4erl,
{log4erl, start_link ,[Default_logger]},
permanent,
10000,
worker,
[log4erl]},
{ok,
{
{one_for_one,3,10},
[_Child]
%[]
}
}.