Логирование в while цикле. Асинхрон

Есть вот такая конфигурация логгера:

import asyncio
import os
from os.path import dirname, split
from aiologger import Logger
from aiologger.levels import LogLevel
from aiologger.handlers.files import AsyncTimedRotatingFileHandler
from aiologger.formatters.base import Formatter
from aiologger.handlers.files import RolloverInterval
 
 
PROJECT_NAME = split(dirname(dirname(__file__)))[1]
DEFAULT_ENCODING = 'utf-8'
DEFAULT_LOG_STYLE = '%(levelname)s %(asctime)s %(filename)s:%(lineno)d %(message)s'
DEFAULT_LOG_FILE = os.path.expanduser("~/logs/SST-LIVE/logging.log")
LOG_PATH = os.path.dirname(DEFAULT_LOG_FILE)
 
async def sstlogger() -> Logger:
    formatter = Formatter(fmt=DEFAULT_LOG_STYLE)
    handler = AsyncTimedRotatingFileHandler(
        filename=DEFAULT_LOG_FILE,
        when=RolloverInterval.DAYS,
        backup_count=1,
        encoding=DEFAULT_ENCODING,
    )
    handler.formatter = formatter
    logger = Logger(name=PROJECT_NAME, level=LogLevel.INFO)
    logger.add_handler(handler)
    return logger

Вcе что хочу вывести в общий лог вполне себе хорошо отрабатывает, но только не то, что находится в while циклах в каждой функции.

Вот это в лог уже не попадает:

elif value["value"]=="Over" and float(value["odd"]) < 1.87 and value["handicap"]=="1":
                        attempts = 0
                        while attempts < 3:
                            await asyncio.sleep(120)
                            await logger.info(f"Повторный запрос из while цикла по ID: {fixture_id} и индикатору"
                                              f" {indicator['name']}")
                            data = await call_api(endpoint="odds/live", params={"fixture": fixture_id})
 
                            if not data["response"]:
                                await logger.warning(
                                    f"Failed to collect required odds data for match ID: {fixture_id} and indicator "
                                    f"{indicator['name']}."

Вероятно, что есть какая-то особенность логирования когда работаешь с asyncio, но мне о ней неизвестно. Подскажите, как реализовать логирование, чтобы все события залетали в лог?


Ответы (0 шт):