Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 10.12.2022
Сообщений: 21

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

24.03.2023, 19:51. Показов 948. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такая конфигурация логгера:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 циклах в каждой функции.

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

Python
1
2
3
4
5
6
7
8
9
10
11
12
                    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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.03.2023, 19:51
Ответы с готовыми решениями:

Синхрон или асинхрон?
Все ли функции в directX синхронны? Допустим, DrawPrimitive(..) создает новый поток? К сожалению, совсем не имею понятия, как это узнать...

Как програмно в цикле не доходя до конца, пропустить шаг в цикле?
Как програмно в цикле не доходя до конца, пропустить шаг в цикле?

При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти
При склеивании строк в цикле, уже на пятом цикле возникает переполнение памяти. Что не так и как правильно сделать? Не пинайте нуба! ...

1
1 / 1 / 0
Регистрация: 10.12.2022
Сообщений: 21
25.03.2023, 10:30  [ТС]
Оказалось, что while вообще не работает. При аналогичной логике с синхроном все ок. Куда копать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2023, 10:30
Помогаю со студенческими работами здесь

Переменная, которая только что использовалась в цикле в качестве счётчика в следующем цикле не используется
Помогите, пожалуйста. Вот отрывок программы (программа целиком- в архиве): procedure TForm1.Button1Click(Sender: TObject); begin ...

Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле считает заново?
Занялся сабжем по проекту. IDE Builder 2010 1) Оптимизирует ли компилятор выражения в цикле типа 90*M_PI или каждую итерацию в цикле...

Описать класс Worker с полями.Создать 10 объектов в цикле.Зп заполнить используя rand функцию.В цикле посчитать средн зп
Описать класс Worker с полями имя, должность и зп. Создать 10 объектов в цикле. Зп заполнить используя rand функцию. В цикле пройтись и...

Логирование
Здравствуйте! Срочно нужна ваша помощь. Нужно чтобы ЭТО запускалось в отдельном потоке. Чтобы остальная часть программы, вызывающая...

Логирование
Подскажите сто не так с кодом Private Sub Вход_Click() Dim Код_Пользователя As Integer If IsNull(Me.Логин) Then MsgBox...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru