Add logger setup function with support for console, file, and Loki logging
This commit is contained in:
37
sk/logger.py
Normal file
37
sk/logger.py
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user