From 8b4b39f33e988f065ba23d2e177d131688a3cefa Mon Sep 17 00:00:00 2001 From: Landon Wark Date: Fri, 1 Mar 2024 12:54:20 -0600 Subject: [PATCH] Update to logging formatters. --- src/submissions/__init__.py | 2 +- src/submissions/backend/db/models/__init__.py | 2 +- .../backend/db/models/submissions.py | 3 ++- src/submissions/tools.py | 26 ++++++++++++++++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/submissions/__init__.py b/src/submissions/__init__.py index 581f3b2..0fe4d00 100644 --- a/src/submissions/__init__.py +++ b/src/submissions/__init__.py @@ -4,7 +4,7 @@ from pathlib import Path # Version of the realpython-reader package __project__ = "submissions" -__version__ = "202402.3b" +__version__ = "202402.4b" __author__ = {"name":"Landon Wark", "email":"Landon.Wark@phac-aspc.gc.ca"} __copyright__ = "2022-2024, Government of Canada" diff --git a/src/submissions/backend/db/models/__init__.py b/src/submissions/backend/db/models/__init__.py index 0cce026..9e03119 100644 --- a/src/submissions/backend/db/models/__init__.py +++ b/src/submissions/backend/db/models/__init__.py @@ -96,4 +96,4 @@ from .controls import * # import order must go: orgs, kit, subs due to circular import issues from .organizations import * from .kits import * -from .submissions import * \ No newline at end of file +from .submissions import * diff --git a/src/submissions/backend/db/models/submissions.py b/src/submissions/backend/db/models/submissions.py index c483d4e..5204cb8 100644 --- a/src/submissions/backend/db/models/submissions.py +++ b/src/submissions/backend/db/models/submissions.py @@ -2284,4 +2284,5 @@ class WastewaterAssociation(SubmissionSampleAssociation): except ValueError as e: logger.error(f"Problem incrementing id: {e}") return 1 - \ No newline at end of file + + \ No newline at end of file diff --git a/src/submissions/tools.py b/src/submissions/tools.py index 913746d..abd1ac7 100644 --- a/src/submissions/tools.py +++ b/src/submissions/tools.py @@ -303,6 +303,29 @@ def get_config(settings_path: Path|str|None=None) -> Settings: settings = yaml.load(stream, Loader=yaml.Loader) return Settings(**settings) +class CustomFormatter(logging.Formatter): + + grey = "\x1b[38;20m" + yellow = "\x1b[33;20m" + red = "\x1b[31;20m" + bold_red = "\x1b[31;1m" + reset = "\x1b[0m" + # format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)" + format = "%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(message)s" + + FORMATS = { + logging.DEBUG: grey + format + reset, + logging.INFO: grey + format + reset, + logging.WARNING: yellow + format + reset, + logging.ERROR: red + format + reset, + logging.CRITICAL: bold_red + format + reset + } + + def format(self, record): + log_fmt = self.FORMATS.get(record.levelno) + formatter = logging.Formatter(log_fmt) + return formatter.format(record) + def setup_logger(verbosity:int=3): """ Set logger levels using settings. @@ -337,7 +360,8 @@ def setup_logger(verbosity:int=3): ch.setLevel(logging.WARNING) ch.name = "Stream" # create formatter and add it to the handlers - formatter = logging.Formatter('%(asctime)s - %(levelname)s - {%(pathname)s:%(lineno)d} - %(message)s') + # formatter = logging.Formatter('%(asctime)s - %(levelname)s - {%(pathname)s:%(lineno)d} - %(message)s') + formatter = CustomFormatter() fh.setFormatter(formatter) ch.setFormatter(formatter) # add the handlers to the logger