1
1
"""Defines manifester's internal logging."""
2
+
2
3
import logging
3
4
from pathlib import Path
4
5
6
+ from dynaconf import Dynaconf
5
7
import logzero
6
8
9
+ from manifester ._settings import settings_path
10
+
11
+ # Initialize temporary settings without running the Vault loader
12
+ temp_settings = Dynaconf (
13
+ settings_file = str (settings_path .absolute ()),
14
+ ENVVAR_PREFIX_FOR_DYNACONF = "MANIFESTER" ,
15
+ load_dotenv = False ,
16
+ )
17
+
7
18
8
- def setup_logzero (level = "info" , path = "logs/manifester.log" , silent = True ):
19
+ def _setup_logzero (
20
+ level = temp_settings .get ("log_level" , "info" ),
21
+ path = "logs/manifester.log" ,
22
+ name = None ,
23
+ formatter = None ,
24
+ silent = True ,
25
+ ):
9
26
"""Call logzero setup with the given settings."""
10
27
Path (path ).parent .mkdir (parents = True , exist_ok = True )
11
28
log_fmt = "%(color)s[%(levelname)s %(asctime)s]%(end_color)s %(message)s"
@@ -15,10 +32,29 @@ def setup_logzero(level="info", path="logs/manifester.log", silent=True):
15
32
log_level = getattr (logging , level .upper (), logging .INFO )
16
33
# formatter for terminal
17
34
formatter = logzero .LogFormatter (fmt = debug_fmt if log_level is logging .DEBUG else log_fmt )
18
- logzero . setup_logger ( formatter = formatter , disableStderrLogger = silent )
19
- logzero . loglevel ( log_level )
35
+ if not name :
36
+ name = "manifester"
20
37
# formatter for file
21
38
formatter = logzero .LogFormatter (
22
39
fmt = debug_fmt if log_level is logging .DEBUG else log_fmt , color = False
23
40
)
24
- logzero .logfile (path , loglevel = log_level , maxBytes = 1e9 , backupCount = 3 , formatter = formatter )
41
+ logger = logzero .setup_logger (
42
+ name = name ,
43
+ formatter = formatter ,
44
+ level = log_level ,
45
+ logfile = path ,
46
+ maxBytes = 1e9 ,
47
+ backupCount = 3 ,
48
+ disableStderrLogger = silent ,
49
+ )
50
+ return logger
51
+
52
+
53
+ _logger = _setup_logzero ()
54
+ # delete temporary settings after initializing the logger
55
+ del temp_settings
56
+
57
+
58
+ def setup_logzero (level , path , name = None , silent = True ):
59
+ """Call logzero setup with the given settings."""
60
+ _logger = _setup_logzero (level , path , name , silent )
0 commit comments