64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
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,
|
|
)
|
|
# Create an instance of the custom handler
|
|
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()
|