made the logger handler on another thread
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user