From 869d861165e46852f6ed57d28a07a63e7070c21f Mon Sep 17 00:00:00 2001 From: Slawomir Koszewski Date: Fri, 7 Nov 2025 00:19:57 +0100 Subject: [PATCH] Add logger setup function with support for console, file, and Loki logging --- sk/logger.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 sk/logger.py 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