From 70a16769761450b9c2aa63cda86a30a73bc0217c Mon Sep 17 00:00:00 2001 From: Alex Schofield Date: Thu, 20 Feb 2025 18:27:12 +0000 Subject: update pyproject.toml & references with new src folder name --- gdpr_obfuscator/logger.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 gdpr_obfuscator/logger.py (limited to 'gdpr_obfuscator/logger.py') diff --git a/gdpr_obfuscator/logger.py b/gdpr_obfuscator/logger.py new file mode 100644 index 0000000..140fa8f --- /dev/null +++ b/gdpr_obfuscator/logger.py @@ -0,0 +1,36 @@ +import logging +import os +from enum import Enum + + +class LogLevel(Enum): + DEBUG = logging.DEBUG + INFO = logging.INFO + WARNING = logging.WARNING + ERROR = logging.ERROR + CRITICAL = logging.CRITICAL + + +def get_logger(name: str, level: LogLevel = LogLevel.INFO) -> logging.Logger: + if isinstance(level, str): + try: + level = LogLevel[level.upper()] + except KeyError: + raise ValueError( + f"Invalid log level '{level}'. Choose from: {', '.join(l.name for l in LogLevel)}" + ) + + logger = logging.getLogger(name) + + if logger.hasHandlers(): + logger.handlers.clear() + + handler = logging.StreamHandler() + logger.setLevel(level.value) + formatting = logging.Formatter( + "[%(asctime)s] - %(levelname)s::%(name)s - %(message)s" + ) + handler.setFormatter(formatting) + logger.addHandler(handler) + + return logger -- cgit v1.2.3