diff options
| author | Alex Schofield <git@ajschof.me> | 2025-02-20 18:27:12 +0000 |
|---|---|---|
| committer | Alex Schofield <git@ajschof.me> | 2025-02-20 18:27:12 +0000 |
| commit | 70a16769761450b9c2aa63cda86a30a73bc0217c (patch) | |
| tree | b9b86ac8575e12f30bc0e53233c94b4ab99973b6 /gdpr_obfuscator/logger.py | |
| parent | 9827fcf1a40b0c4993da3f420177f4e390e038e9 (diff) | |
| download | gdpr-obfuscator-70a16769761450b9c2aa63cda86a30a73bc0217c.tar.gz gdpr-obfuscator-70a16769761450b9c2aa63cda86a30a73bc0217c.zip | |
update pyproject.toml & references with new src folder name
Diffstat (limited to 'gdpr_obfuscator/logger.py')
| -rw-r--r-- | gdpr_obfuscator/logger.py | 36 |
1 files changed, 36 insertions, 0 deletions
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 |
