made the logger handler on another thread

This commit is contained in:
Bradley Nordin
2022-03-23 19:54:38 -06:00
parent b9b63d96a0
commit f218dd2131

View File

@@ -1,8 +1,9 @@
import logging
import os
import platform
import queue
from datetime import datetime
from logging.handlers import TimedRotatingFileHandler
from logging.handlers import TimedRotatingFileHandler,QueueHandler,QueueListener
from pathlib import Path
import emoji
@@ -159,8 +160,14 @@ def configure_loggers(username, settings):
if settings.colored is True:
init(autoreset=True)
# Queue handler that will handle the logger queue
logger_queue = queue.Queue(-1)
queue_handler = QueueHandler(logger_queue)
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)
# Add the queue handler to the root logger
# Send log messages to another thread through the queue
root_logger.addHandler(queue_handler)
console_handler = logging.StreamHandler()
console_handler.setLevel(settings.console_level)
@@ -208,10 +215,12 @@ def configure_loggers(username, settings):
)
)
file_handler.setLevel(settings.file_level)
root_logger.addHandler(file_handler)
root_logger.addHandler(console_handler)
# Add logger handlers to the logger queue and start the process
queue_listener = QueueListener(logger_queue,file_handler,console_handler,respect_handler_level=True)
queue_listener.start()
return logs_file
else:
root_logger.addHandler(console_handler)
queue_listener = QueueListener(logger_queue,console_handler,respect_handler_level=True)
queue_listener.start()
return None