aboutsummaryrefslogtreecommitdiffstats
path: root/obfuscator/logger.py
diff options
context:
space:
mode:
Diffstat (limited to 'obfuscator/logger.py')
-rw-r--r--obfuscator/logger.py41
1 files changed, 27 insertions, 14 deletions
diff --git a/obfuscator/logger.py b/obfuscator/logger.py
index 649dad7..2c5b988 100644
--- a/obfuscator/logger.py
+++ b/obfuscator/logger.py
@@ -1,24 +1,37 @@
import logging
import os
+from enum import Enum
-def get_logger(name: str) -> logging.Logger:
- logger = logging.getLogger(name)
+class LogLevel(Enum):
+ DEBUG = logging.DEBUG
+ INFO = logging.INFO
+ WARNING = logging.WARNING
+ ERROR = logging.ERROR
+ CRITICAL = logging.CRITICAL
+
- if not logger.hasHandlers():
- if os.getenv("DEBUG", "FALSE").upper() == "TRUE":
- log_level = logging.DEBUG
- else:
- log_level = logging.INFO
+def get_logger(name: str, level: LogLevel = LogLevel.INFO) -> logging.Logger:
- logger.setLevel(log_level)
+ 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)
- handler = logging.StreamHandler()
- formatting = logging.Formatter(
- "[%(asctime)s] - %(levelname)s::%(name)s - %(message)s"
- )
- handler.setFormatter(formatting)
+ if logger.hasHandlers():
+ logger.handlers.clear()
- logger.addHandler(handler)
+ 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
git.ajschof.me — hosted by ajschofield — powered by cgit