- utils/news.py: добавлен logger, логирование ошибок RSS - utils/cat.py: добавлен logger, логирование ошибок TheCatAPI - utils/pogoda.py: улучшены логи fallback/warning при ошибках API - utils/rate_limiter.py: debug-логи при ожидании токенов - commands/pg.py, news.py, cat.py, morning.py, status.py, stats.py: logger + логи ошибок и успешного выполнения команд - console_commands/pogoda.py, news.py, cat.py, morning.py, status.py, stats.py: logger + логи выполнения - bot.py: логи запуска/остановки, проверки конфигурации, маршрутизации консольных команд, f-строки -> %s формат - ISSUES.md: снят флаг задачи по логированию - все 243 теста пройдены
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import logging
|
||
import time
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
|
||
def status(stop_event, bot):
|
||
"""Показать статус бота: пинг и время работы"""
|
||
if stop_event.is_set():
|
||
return None
|
||
|
||
logger.info("Консольная команда: status")
|
||
latency_ms = round(bot.latency * 1000, 1)
|
||
start_time = getattr(bot, "_start_time", time.time())
|
||
uptime_seconds = time.time() - start_time
|
||
uptime_str = _format_uptime(uptime_seconds)
|
||
|
||
print("\n" + "=" * 40)
|
||
print("Статус бота")
|
||
print("=" * 40)
|
||
print(f" Пинг: {latency_ms} мс")
|
||
print(f" Uptime: {uptime_str}")
|
||
print(f" Статус: Online")
|
||
print("=" * 40)
|
||
logger.info("Консольная команда status: выполнена")
|
||
|
||
|
||
def _format_uptime(total_seconds: float) -> str:
|
||
"""Форматировать секунды в человекочитаемый вид."""
|
||
days = int(total_seconds // 86400)
|
||
hours = int((total_seconds % 86400) // 3600)
|
||
minutes = int((total_seconds % 3600) // 60)
|
||
seconds = int(total_seconds % 60)
|
||
|
||
parts = []
|
||
if days:
|
||
parts.append(f"{days}д")
|
||
if hours:
|
||
parts.append(f"{hours}ч")
|
||
if minutes:
|
||
parts.append(f"{minutes}м")
|
||
parts.append(f"{seconds}с")
|
||
|
||
return " ".join(parts)
|