8
8
import logging .handlers
9
9
10
10
11
- def set_root_logger ():
11
+ def set_root_logger (script : str ):
12
12
"""
13
13
Set up root logger and add stream handler - we only want to add stream handler once
14
14
else it will duplicate log messages to the terminal
15
+ :param script (str): Script from which the base logger was setup
16
+ (named in same way to ensure it uses the root syslog / stream handler)
15
17
"""
16
- logger = logging .getLogger ()
18
+ logger = logging .getLogger (script )
17
19
logger .setLevel (logging .DEBUG )
18
20
stream_handler = logging .StreamHandler (sys .stdout )
19
21
stream_handler .setLevel (logging .DEBUG )
@@ -28,7 +30,10 @@ class SSLogger:
28
30
29
31
Attributes
30
32
timestamp (str): Timestamp from config
33
+ script (str): Script from which the base logger was setup
34
+ (named in same way to ensure it uses the root syslog / stream handler)
31
35
logfile_path (str): Name of filepath to provide to _file_handler()
36
+ runfolder_name (str): Runfolder name
32
37
logging_formatter (logging.Formatter): Specifies the layout of log records in the final output
33
38
34
39
Methods
@@ -40,22 +45,27 @@ class SSLogger:
40
45
Get syslog handler for the logger
41
46
"""
42
47
43
- def __init__ (self , logfile_path : str ):
48
+ def __init__ (self , script : str , logfile_path : str , runfolder_name : str ):
44
49
"""
45
50
Constructor for the Logger class
51
+ :param script (str): Script from which the base logger was setup
52
+ (named in same way to ensure it uses the root syslog / stream handler)
46
53
:param logfile_path (str): Path to logfile location
54
+ :param runfolder_name (str): Runfolder name
47
55
"""
48
56
# Timestamp used for naming log files with datetime, format %Y%m%d_%H%M%S
49
57
self .timestamp = config .TIMESTAMP
58
+ self .script = script
50
59
self .logfile_path = logfile_path
60
+ self .runfolder_name = runfolder_name
51
61
self .logging_formatter = logging .Formatter (config .LOGGING_FORMATTER )
52
62
53
63
def get_logger (self ) -> logging .Logger :
54
64
"""
55
65
Returns a Python logging object, and give it a name
56
66
:return logger (object): Python logging object with custom attributes
57
67
"""
58
- logger = logging .getLogger ()
68
+ logger = logging .getLogger (f" { __package__ } . { self . runfolder_name } " )
59
69
logger .filepath = self .logfile_path
60
70
logger .setLevel (logging .DEBUG )
61
71
logger .addHandler (self ._get_file_handler ())
0 commit comments