""" Loki-Database Logger to log systemwide events manually or on schedule """ import socket import argparse import logging import time from loki_logger_handler.loki_logger_handler import LokiLoggerHandler parser = argparse.ArgumentParser( prog="Loki-Logger", description="logging to Loki", epilog="enjoy", ) parser.add_argument("--host", required=True) parser.add_argument("-a", "--application", default="Loki-Logger.py") parser.add_argument("-m", "--message", required=True) parser.add_argument("-t", "--type", required=True) parser.add_argument("-s", "--service", default="Events") parser.add_argument("-c", "--category", default="") parser.add_argument("-e", "--event", default="start") args = parser.parse_args() APPLICATION_NAME = f"{args.application} - {args.service}" logger = logging.getLogger(name=APPLICATION_NAME) logger.setLevel(logging.DEBUG) client_name = socket.gethostname() # Create an instance of the custom handler now = int(time.time()) - 100 print(now) logging_handler = LokiLoggerHandler( url="http://192.168.0.30:3001/loki/api/v1/push", labels={ "application": APPLICATION_NAME, "service": args.service, "category": args.category, "environment": "Develop", "client": client_name, "text": args.message, "event": args.event, # "description": args.message, }, enable_structured_loki_metadata=True, loki_metadata={ "time": now, }, label_keys={}, timeout=10, ) logger.addHandler(logging_handler) try: if args.type == "info": logger.info(args.message) elif args.type == "debug": logger.debug(args.message) elif args.type == "warning": logger.warning(args.message) elif args.type == "error": logger.error(args.message) except KeyboardInterrupt: print("ctrl+c pressed") logger.debug("ctrl+c pressed") exit()