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