mirror of
https://github.com/ThomasGsp/HyperProxmox.git
synced 2025-02-13 11:42:13 +00:00
80 lines
3.6 KiB
Python
80 lines
3.6 KiB
Python
import logging
|
|
import argparse
|
|
import sys
|
|
import http.client as http_client
|
|
import datetime
|
|
import re
|
|
import json
|
|
from sys import getsizeof
|
|
|
|
class Logger:
|
|
def __init__(self, loggerconf):
|
|
self.logs_dir = loggerconf['logs_dir']
|
|
self.log_level = int(loggerconf['logs_level'])
|
|
self.bulk = loggerconf['bulk_write']
|
|
self.bulk_size = loggerconf['bulk_size']
|
|
self.currenttext_proxmox = ""
|
|
self.currenttext_hyperproxmox = ""
|
|
self.currenttext_python = ""
|
|
self.currenttext_others = ""
|
|
|
|
def write(self, json_text):
|
|
switcher = {
|
|
1: "INFO",
|
|
2: "WARNING",
|
|
3: "ERROR",
|
|
4: "CRITICAL",
|
|
5: "DEBUG"
|
|
}
|
|
|
|
lKeyC = [key for key, value in switcher.items() if '"{val}"'.format(val=value) == json.dumps(json_text["result"])][0]
|
|
|
|
if lKeyC >= self.log_level or self.log_level == 5:
|
|
|
|
now = datetime.datetime.now()
|
|
date = now.strftime("%Y-%m-%d %H:%M")
|
|
newtext = re.sub(r"ticket\?(.*?) ", "ticket?username=***YOUR_USER***&password=***PWD***", json.dumps(json_text["value"]))
|
|
|
|
try:
|
|
info = "[{3}] [{0}] [{1}] [{2}]".format(json_text["result"], json_text["type"], json_text["target"], json_text["thread"])
|
|
except BaseException:
|
|
info = "[{2}] [{0}] [{1}]".format(json_text["result"], json_text["type"], json_text["thread"])
|
|
|
|
newtext = "[{date}] {info} : {text} \n".format(date=date, info=info, text=newtext)
|
|
|
|
try:
|
|
if json_text["type"] == "PROXMOX":
|
|
self.currenttext_proxmox = self.currenttext_proxmox + newtext
|
|
if getsizeof(self.currenttext_proxmox) > 800 or self.bulk == 0 or self.log_level == 5:
|
|
errorlog = open("{0}/proxmox.log".format(self.logs_dir), "ab")
|
|
errorlog.write(self.currenttext_proxmox.encode('utf-8'))
|
|
self.currenttext_proxmox = ""
|
|
errorlog.close()
|
|
|
|
elif json_text["type"] == "HYPERPROXMOX":
|
|
self.currenttext_hyperproxmox = self.currenttext_hyperproxmox + newtext
|
|
if getsizeof(self.currenttext_hyperproxmox) > 800 or self.bulk == 0 or self.log_level == 5:
|
|
errorlog = open("{0}/hyperproxmox.log".format(self.logs_dir), "ab")
|
|
errorlog.write(self.currenttext_hyperproxmox.encode('utf-8'))
|
|
self.currenttext_hyperproxmox = ""
|
|
errorlog.close()
|
|
|
|
elif json_text["type"] == "PYTHON":
|
|
self.currenttext_python = self.currenttext_python + newtext
|
|
if getsizeof(self.currenttext_python) > 800 or self.bulk == 0 or self.log_level == 5:
|
|
errorlog = open("{0}/python.log".format(self.logs_dir), "ab")
|
|
errorlog.write(self.currenttext_python.encode('utf-8'))
|
|
self.currenttext_python = ""
|
|
errorlog.close()
|
|
else:
|
|
self.currenttext_others = self.currenttext_others + newtext
|
|
if getsizeof(self.currenttext_others) > 800 or self.bulk == 0 or self.log_level == 5:
|
|
errorlog = open("{0}/others.log".format(self.logs_dir), "ab")
|
|
errorlog.write(self.currenttext_others.encode('utf-8'))
|
|
self.currenttext_others = ""
|
|
errorlog.close()
|
|
|
|
|
|
except BaseException:
|
|
print("Cannot write on {0}, please check permissions.".format(self.logs_dir))
|
|
exit(1)
|