Fix logging

This commit is contained in:
Alexandr Bogomyakov
2024-06-12 12:20:09 +03:00
committed by GitHub
parent b01d86251c
commit c8dcd4439c

17
main.py
View File

@ -17,19 +17,12 @@ from werkzeug.routing import BaseConverter
from lib import Server, write_config, get_config, args, lock from lib import Server, write_config, get_config, args, lock
class DuplicateFilter(logging.Filter): class DuplicateFilter(logging.Filter):
def __init__(self, interval=100):
super(DuplicateFilter, self).__init__()
self.msgs = {}
self.interval = interval
def filter(self, record): def filter(self, record):
msg = record.getMessage() # add other fields if you need more granular comparison, depends on your app
if msg not in self.msgs: current_log = (record.module, record.levelno, record.msg)
self.msgs[msg] = 0 if current_log != getattr(self, "last_log", None):
self.msgs[msg] += 1 self.last_log = current_log
# Print every nth message, where n is the interval
if self.msgs[msg] % self.interval == 0:
return True return True
return False return False
@ -48,7 +41,7 @@ formatter = logging.Formatter(
) )
file_handler.setFormatter(formatter) file_handler.setFormatter(formatter)
log.addHandler(file_handler) log.addHandler(file_handler)
duplicate_filter = DuplicateFilter(interval=100) duplicate_filter = DuplicateFilter()
log.addFilter(duplicate_filter) log.addFilter(duplicate_filter)
CFG_PATH = args.config CFG_PATH = args.config