@@ -21,21 +21,33 @@ def make_a_logger(conf=None, image_name=None):
21
21
log = logging .getLogger ("." .join ([__name__ , image_name ]))
22
22
else :
23
23
log = logging .getLogger (__name__ )
24
+
25
+ if conf is not None and conf .debug :
26
+ loglevel = logging .DEBUG
27
+ else :
28
+ loglevel = logging .INFO
29
+
24
30
if not log .handlers :
25
- if conf is None or not conf .logs_dir or not image_name :
26
- handler = logging .StreamHandler (sys .stderr )
27
- log .propagate = False
31
+ stream_handler = logging .StreamHandler (sys .stderr )
32
+ stream_handler .setFormatter (logging .Formatter (logging .BASIC_FORMAT ))
33
+ # NOTE(hrw): quiet mode matters only on console
34
+ if conf is not None and conf .quiet :
35
+ stream_handler .setLevel (logging .CRITICAL )
28
36
else :
37
+ stream_handler .setLevel (loglevel )
38
+ log .addHandler (stream_handler )
39
+ log .propagate = False
40
+
41
+ if conf is not None and conf .logs_dir and image_name :
29
42
filename = os .path .join (conf .logs_dir , "%s.log" % image_name )
30
43
handler = logging .FileHandler (filename , delay = True )
31
- handler .setFormatter (logging .Formatter (logging .BASIC_FORMAT ))
32
- log .addHandler (handler )
33
- if conf is not None and conf .debug :
34
- log .setLevel (logging .DEBUG )
35
- elif conf is not None and conf .quiet and image_name :
36
- log .setLevel (logging .CRITICAL )
37
- else :
38
- log .setLevel (logging .INFO )
44
+ # NOTE(hrw): logfile will be INFO or DEBUG
45
+ handler .setLevel (loglevel )
46
+ handler .setFormatter (logging .Formatter (logging .BASIC_FORMAT ))
47
+ log .addHandler (handler )
48
+
49
+ # NOTE(hrw): needs to be high, handlers have own levels
50
+ log .setLevel (logging .DEBUG )
39
51
return log
40
52
41
53
0 commit comments