Skip to content

Commit 56497e4

Browse files
committed
Add runfolder name to logger, remove timestamp
1 parent 02b1f5b commit 56497e4

File tree

5 files changed

+20
-9
lines changed

5 files changed

+20
-9
lines changed

samplesheet_validator/__main__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def is_valid_dir(parser: argparse.ArgumentParser, dir: str) -> str:
101101
if __name__ == "__main__":
102102
parsed_args = get_arguments()
103103
if not parsed_args.no_stream_handler:
104-
set_root_logger() # Adds stream handler
104+
set_root_logger(__package__) # Adds stream handler
105105
sscheck_obj = SamplesheetCheck(
106106
parsed_args.samplesheet_path,
107107
parsed_args.sequencer_ids,

samplesheet_validator/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
TIMESTAMP = str(f"{datetime.datetime.now():%Y%m%d_%H%M%S}")
44

55
# Specifies the layout of log records in the final output
6-
LOGGING_FORMATTER = "%(asctime)s - SAMPLESHEET_VALIDATOR - %(levelname)s - %(message)s"
6+
LOGGING_FORMATTER = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
77

88
LOG_MSGS = {
99
"ss_present": "Samplesheet with supplied name exists (%s)",

samplesheet_validator/samplesheet_validator.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ def get_logger(self):
124124
runfolder_name = (self.samplesheet_path.split("/")[-1]).split(
125125
"_SampleSheet.csv"
126126
)[0]
127-
logfile_path = f"{os.path.join(self.logdir, runfolder_name)}_{config.TIMESTAMP}_samplesheet_validator.log"
128-
return SSLogger(logfile_path).get_logger()
127+
logfile_path = f"{os.path.join(self.logdir, runfolder_name)}_samplesheet_validator.log"
128+
return SSLogger(__package__, logfile_path, runfolder_name).get_logger()
129129

130130
def ss_checks(self) -> None:
131131
"""

samplesheet_validator/ss_logger.py

+15-4
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88
import logging.handlers
99

1010

11-
def set_root_logger():
11+
def set_root_logger(script: str):
1212
"""
1313
Set up root logger and add stream handler - we only want to add stream handler once
1414
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)
1517
"""
16-
logger = logging.getLogger()
18+
logger = logging.getLogger(script)
19+
logger.name=__package__
1720
logger.setLevel(logging.DEBUG)
1821
stream_handler = logging.StreamHandler(sys.stdout)
1922
stream_handler.setLevel(logging.DEBUG)
@@ -28,7 +31,10 @@ class SSLogger:
2831
2932
Attributes
3033
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)
3136
logfile_path (str): Name of filepath to provide to _file_handler()
37+
runfolder_name (str): Runfolder name
3238
logging_formatter (logging.Formatter): Specifies the layout of log records in the final output
3339
3440
Methods
@@ -40,22 +46,27 @@ class SSLogger:
4046
Get syslog handler for the logger
4147
"""
4248

43-
def __init__(self, logfile_path: str):
49+
def __init__(self, script: str, logfile_path: str, runfolder_name: str):
4450
"""
4551
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)
4654
:param logfile_path (str): Path to logfile location
55+
:param runfolder_name (str): Runfolder name
4756
"""
4857
# Timestamp used for naming log files with datetime, format %Y%m%d_%H%M%S
4958
self.timestamp = config.TIMESTAMP
59+
self.script = script
5060
self.logfile_path = logfile_path
61+
self.runfolder_name = runfolder_name
5162
self.logging_formatter = logging.Formatter(config.LOGGING_FORMATTER)
5263

5364
def get_logger(self) -> logging.Logger:
5465
"""
5566
Returns a Python logging object, and give it a name
5667
:return logger (object): Python logging object with custom attributes
5768
"""
58-
logger = logging.getLogger()
69+
logger = logging.getLogger(f"{__package__}.{self.runfolder_name}")
5970
logger.filepath = self.logfile_path
6071
logger.setLevel(logging.DEBUG)
6172
logger.addHandler(self._get_file_handler())

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name="samplesheet_validator",
6-
version=git_tag(),
6+
version="TEST",
77
description="Python library for samplesheet validation",
88
url="https://github.com/moka-guys/samplesheet_validator",
99
author="Rachel Duffin",

0 commit comments

Comments
 (0)