-
Notifications
You must be signed in to change notification settings - Fork 125
/
schedulerLog.ml
98 lines (73 loc) · 2.73 KB
/
schedulerLog.ml
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
(*
Copyright © 2011 MLstate
This file is part of OPA.
OPA is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License, version 3, as published by
the Free Software Foundation.
OPA is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.
You should have received a copy of the GNU Affero General Public License
along with OPA. If not, see <http://www.gnu.org/licenses/>.
*)
#<Debugvar:SCHEDULER_DEBUG>
let int_of_fd = Epoll.Debug.int_of_filedescr
let level = ref (-1)
let print_level () =
let rec aux s n =
if n <= 0 then s
else if n >= 10 then (Printf.sprintf "%s ...(level %d)" s !level)
else aux (Printf.sprintf "%s\t" s) (n-1)
in
aux "" !level
let incr_level () = level := !level + 1; ()
let decr_level () = level := !level - 1; ()
let sprintf = Printf.sprintf
let dest = [Logger.make_rotating_destination "scheduler"]
let logger = Logger.make_logger dest 10
let log priority color fmt =
let _log fmt = Logger.log_error ~priority ~color ~logger fmt in
let _nolog fmt = Format.ifprintf Format.std_formatter fmt in
#<If>
_log fmt
#<Else>
_nolog fmt
#<End>
let string_of_connection conn =
sprintf "%d" (int_of_fd (NetAddr.get_fd conn))
let string_addr_of_connection conn =
try
Unix.string_of_inet_addr (NetAddr.get_addr conn)
with
| Invalid_argument _ -> "file"
let label _s = sprintf "%s" (print_level ())
let info_conn m ?(s="") conn =
Logger.debug "%s [%s] %s %s" (label "sched") m (string_of_connection conn) s
let info_new_conn m conn =
info_conn m ~s:(string_addr_of_connection conn) conn
let job_info _key ?(s="") _m =
#<If$minlevel 2>
log Logger.Info `magenta "%s [%s] %d %s" (label "job") _m _key s
#<Else>
ignore s;
#<End>
let ker_info ?(s="") _m =
#<If$minlevel 2>
log Logger.Info `magenta "%s [%s] %s" (label "ker") _m s
#<Else>
ignore s;
#<End>
let info ?(s="") m =
Logger.info "%s [%s] %s" (label "sched") m s
let warning fct conn fmt =
Logger.warning "%s [%s] %s %s" (label "sched") fct (string_of_connection conn) fmt
let error_conn fct conn fmt =
Logger.error "%s [%s] %s %s" (label "sched") fct (string_of_connection conn) fmt
let scheduler_debug_and_not_show_logs scheduler_debug =
DebugVariables.defined scheduler_debug
&& DebugVariables.undefined DebugVariables.show_logs
let error fct msg = Logger.error ("[%s] %s") fct msg
let critical fct msg = Logger.critical ("[%s] %s") fct msg
let warning_without_connection fct fmt =
Logger.warning "%s [%s] %s" (label "sched") fct fmt