-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Labels
Description
I don't understand why it throws out the stack trace in the error name, and not as a separate attachment.
except Exception:
logger.exception("Критическая ошибка в главном процессе")
def configure_logging(config: Config) -> None:
log_format = (
"[%(asctime)s.%(msecs)03d] [%(process)d] [%(levelname)-5s] "
"[%(module)-30s -> %(funcName)-40s:%(lineno)-3d] - %(message)s"
)
datefmt = "%Y-%m-%d %H:%M:%S"
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(logging.Formatter(fmt=log_format, datefmt=datefmt))
stream_handler.setLevel(logging.INFO)
seq_handler = seqlog.log_to_seq(
server_url=config.seq_logger.server_url,
api_key=config.seq_logger.api_key,
level=logging.INFO,
batch_size=10,
auto_flush_timeout=5,
override_root_logger=False,
support_stack_info=False,
)
seqlog.set_callback_on_failure(
lambda e: logging.exception(
"Во время отправки логов в seq произошел сбой", exc_info=e
),
)
root_logger = logging.getLogger()
# Удаляем обработчики с корневого логгера, чтобы им управлял QueueListener
root_logger.handlers.clear()
queue = multiprocessing.Queue(-1) # Создаем очередь
root_logger.addHandler(QueueHandler(queue))
# Запускаем "слушателя" очереди в отдельном потоке
listener = QueueListener(queue, *[stream_handler, seq_handler])
listener.start()