diff --git a/api/v2/routes/management.py b/api/v2/routes/management.py index e9f2293f..91da90d5 100644 --- a/api/v2/routes/management.py +++ b/api/v2/routes/management.py @@ -356,7 +356,7 @@ async def post_audit_drain(identity=Depends(verify_identity_admin_short)): count = await drain_audit_redis_to_db(async_session_maker) return {"success": True, "drained": count} except Exception as exc: - logger.warning("audit-drain failed: %s", exc) + logger.warning("audit-drain failed: {}", exc) raise HTTPException(status_code=500, detail=str(exc)) from exc diff --git a/audit/__init__.py b/audit/__init__.py index 7e288b32..5c6a5d07 100644 --- a/audit/__init__.py +++ b/audit/__init__.py @@ -536,7 +536,7 @@ async def record_api_access_event_background( reason=reason, ) except Exception as exc: - logger.warning("[Audit] Запись api_access в Redis-буфер не удалась: %s", exc) + logger.warning("[Audit] Запись api_access в Redis-буфер не удалась: {}", exc) return try: async with session_factory() as session: @@ -1069,7 +1069,7 @@ async def drain_audit_redis_to_db(session_factory: Any) -> int: break batch = [rec for rec in raw_batch if isinstance(rec, dict)] if not batch: - logger.warning("[Audit] drain_audit_redis_to_db: отброшен пустой/битый батч (%s элементов)", len(raw_batch)) + logger.warning("[Audit] drain_audit_redis_to_db: отброшен пустой/битый батч ({} элементов)", len(raw_batch)) await cache_lpop_batch(_AUDIT_REDIS_PROCESSING_KEY, len(raw_batch)) continue try: @@ -1115,7 +1115,7 @@ async def drain_audit_redis_to_db(session_factory: Any) -> int: await cache_lpop_batch(_AUDIT_REDIS_PROCESSING_KEY, len(raw_batch)) total += inserted_count except Exception as exc: - logger.warning("[Audit] drain_audit_redis_to_db батч не записан, останется в Redis processing: %s", exc) + logger.warning("[Audit] drain_audit_redis_to_db батч не записан, останется в Redis processing: {}", exc) break return total finally: diff --git a/handlers/admin/stats/stats_handler.py b/handlers/admin/stats/stats_handler.py index de9bf8dc..eb3875c2 100644 --- a/handlers/admin/stats/stats_handler.py +++ b/handlers/admin/stats/stats_handler.py @@ -385,7 +385,7 @@ async def _build_audit_report(session: AsyncSession, source: str = "db") -> tupl lines.append(f" • {step['label']}: {step['count']} польз.{conv}") return ("\n".join(lines), None) except Exception as e: - logger.exception("Ошибка при получении аудита: %s", e) + logger.exception("Ошибка при получении аудита: {}", e) return (None, str(e)) @@ -485,7 +485,7 @@ async def handle_audit_reset_do(callback_query: CallbackQuery, session: AsyncSes except TelegramBadRequest: pass except Exception as e: - logger.exception("Ошибка при сбросе аудита (%s): %s", source, e) + logger.exception("Ошибка при сбросе аудита ({}): {}", source, e) await callback_query.answer("Не удалось сбросить аудит", show_alert=True)