[11] add summary output to log

This commit is contained in:
meisnate12 2023-01-09 16:22:39 -05:00
parent 36eaf230b5
commit 0afb243335
4 changed files with 31 additions and 5 deletions

View file

@ -1 +1 @@
1.18.2-develop10
1.18.2-develop11

View file

@ -279,8 +279,7 @@ class Library(ABC):
self.report_data[collection][other] = []
self.report_data[collection][other].append(title)
with open(self.report_path, "w"): pass
yaml = YAML(self.report_path)
yaml = YAML(self.report_path, start_empty=True)
yaml.data = self.report_data
yaml.save()

View file

@ -931,7 +931,7 @@ def get_system_fonts():
return system_fonts
class YAML:
def __init__(self, path=None, input_data=None, check_empty=False, create=False):
def __init__(self, path=None, input_data=None, check_empty=False, create=False, start_empty=False):
self.path = path
self.input_data = input_data
self.yaml = ruamel.yaml.YAML()
@ -940,7 +940,7 @@ class YAML:
if input_data:
self.data = self.yaml.load(input_data)
else:
if create and not os.path.exists(self.path):
if start_empty or (create and not os.path.exists(self.path)):
with open(self.path, 'w'):
pass
self.data = {}

View file

@ -1,4 +1,5 @@
import argparse, os, platform, psutil, sys, time, uuid
from collections import Counter
from concurrent.futures import ProcessPoolExecutor
from datetime import datetime
from modules.logs import MyLogger
@ -274,6 +275,32 @@ def start(attrs):
version_line = f"Version: {version[0]}"
if new_version:
version_line = f"{version_line} Newest Version: {new_version}"
try:
log_data = {}
with open(logger.main_log, encoding="utf-8") as f:
for log_line in f:
for err_type in ["WARNING", "ERROR", "CRITICAL"]:
if f"[{err_type}]" in log_line:
log_line = log_line.split("|")[1].strip()
if err_type not in log_data:
log_data[err_type] = []
log_data[err_type].append(log_line)
for err_type in ["WARNING", "ERROR", "CRITICAL"]:
if err_type not in log_data:
continue
logger.separator(f"{err_type.lower().capitalize()} Summary", space=False, border=False)
logger.info("")
logger.info(f"Count | Message")
logger.separator(f"{logger.separating_character * 5}|", space=False, border=False, side_space=False, left=True)
for k, v in Counter(log_data[err_type]).most_common():
logger.info(f"{v:>5} | {k}")
logger.info("")
except Failed as e:
logger.stacktrace()
logger.error(f"Report Error: {e}")
logger.separator(f"Finished {start_type}Run\n{version_line}\nFinished: {end_time.strftime('%H:%M:%S %Y-%m-%d')} Run Time: {run_time}")
logger.remove_main_handler()