1
0
Fork 0
mirror of https://github.com/ThomasGsp/HyperProxmox.git synced 2025-02-15 04:32:15 +00:00
HyperProxmox/code/scripts/main/core/libs/logs.py

80 lines
3.6 KiB
Python
Raw Normal View History

2018-02-08 19:41:44 +00:00
import logging
import argparse
import sys
import http.client as http_client
import datetime
import re
2018-03-22 15:33:06 +00:00
import json
2018-04-12 16:29:34 +00:00
from sys import getsizeof
2018-02-08 19:41:44 +00:00
class Logger:
2018-03-22 15:33:06 +00:00
def __init__(self, loggerconf):
self.logs_dir = loggerconf['logs_dir']
self.log_level = int(loggerconf['logs_level'])
2018-04-12 16:29:34 +00:00
self.bulk = loggerconf['bulk_write']
self.bulk_size = loggerconf['bulk_size']
2018-04-12 16:37:48 +00:00
self.currenttext_proxmox = ""
self.currenttext_hyperproxmox = ""
self.currenttext_python = ""
self.currenttext_others = ""
2018-03-22 15:33:06 +00:00
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 and lKeyC <= 4:
now = datetime.datetime.now()
date = now.strftime("%Y-%m-%d %H:%M")
2018-04-12 16:29:34 +00:00
newtext = re.sub(r"ticket\?(.*?) ", "ticket?username=***YOUR_USER***&password=***PWD***", json_text["value"])
2018-03-22 15:33:06 +00:00
try:
info = "[{0}] [{1}] [{2}]".format(json_text["result"], json_text["type"], json_text["target"])
except BaseException:
info = "[{0}] [{1}]".format(json_text["result"], json_text["type"])
2018-04-12 16:29:34 +00:00
newtext = "[{date}] {info} : {text} \n".format(date=date, info=info, text=newtext)
2018-04-12 16:37:48 +00:00
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 == 6:
2018-04-12 16:29:34 +00:00
errorlog = open("{0}/proxmox.log".format(self.logs_dir), "ab")
2018-04-12 16:37:48 +00:00
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 == 6:
2018-04-12 16:29:34 +00:00
errorlog = open("{0}/hyperproxmox.log".format(self.logs_dir), "ab")
2018-04-12 16:37:48 +00:00
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 == 6:
2018-04-12 16:29:34 +00:00
errorlog = open("{0}/python.log".format(self.logs_dir), "ab")
2018-04-12 16:37:48 +00:00
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 == 6:
2018-04-12 16:29:34 +00:00
errorlog = open("{0}/others.log".format(self.logs_dir), "ab")
2018-04-12 16:37:48 +00:00
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)