diff --git a/sk/logger.py b/sk/logger.py new file mode 100644 index 0000000..385b517 --- /dev/null +++ b/sk/logger.py @@ -0,0 +1,37 @@ +import logging +from loki_logger_handler.loki_logger_handler import LokiLoggerHandler + +LOG_CONSOLE = 1 +LOG_FILE = 2 +LOG_LOKI = 4 + +# Quick non-intrusive debug check for sk.devops logger +def setup(name: str, handlers: int) -> logging.Logger: + logger = logging.getLogger(name) + logger.setLevel(logging.DEBUG) + + fmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s [%(url)]') + + if handlers & LOG_CONSOLE: + console = logging.StreamHandler() + console.setLevel(logging.INFO) + console.setFormatter(fmt) + logger.addHandler(console) + + if handlers & LOG_FILE: + file = logging.FileHandler('devops_debug.log') + file.setLevel(logging.DEBUG) + file.setFormatter(fmt) + logger.addHandler(file) + + if handlers & LOG_LOKI: + # Create an instance of the custom handler + custom_handler = LokiLoggerHandler( + url="https://loki.koszewscy.waw.pl/loki/api/v1/push", + labels={"application": "docs-harverster"}, + label_keys={"http_method": "http_method"}, + timeout=10, + ) + logger.addHandler(custom_handler) + + return logger