All checks were successful
Build & Publish to GHCR / build (push) Successful in 1m1s
30 lines
835 B
Python
30 lines
835 B
Python
import os
|
|
import logging
|
|
|
|
try:
|
|
from pythonjsonlogger import jsonlogger
|
|
JSON_LOGGING = True
|
|
except ImportError:
|
|
JSON_LOGGING = False
|
|
|
|
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
|
|
if LOG_LEVEL not in {"ERROR", "DEBUG", "INFO", "WARNING", "CRITICAL"}:
|
|
LOG_LEVEL = "INFO"
|
|
|
|
def setup_logger(name: str) -> logging.Logger:
|
|
logger = logging.getLogger(name)
|
|
if not logger.handlers:
|
|
handler = logging.StreamHandler()
|
|
if JSON_LOGGING:
|
|
formatter = jsonlogger.JsonFormatter(
|
|
"%(asctime)s %(name)s %(levelname)s %(message)s"
|
|
)
|
|
else:
|
|
formatter = logging.Formatter(
|
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
)
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
logger.setLevel(getattr(logging, LOG_LEVEL))
|
|
logger.debug(f"Logger {name} initialized with level {LOG_LEVEL}")
|
|
return logger |