diff --git a/src/config.py b/src/config.py
index ae4e248..75685a1 100644
--- a/src/config.py
+++ b/src/config.py
@@ -1,5 +1,6 @@
import logging
import os
+from collections import deque
from telebot import logger
@@ -21,4 +22,20 @@ if not is_url_reachable(RULES_URL):
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S", force=True)
logger.setLevel(logging.ERROR)
-logging.critical(f'LOGGER {logging.getLogger()}: ')
\ No newline at end of file
+
+# Лог в буфер для HTML:
+log_buffer = deque(maxlen=1500)
+
+class BufferHandler(logging.Handler):
+ def emit(self, record):
+ log_buffer.append(self.format(record))
+
+
+buffer_handler = BufferHandler()
+buffer_handler.setLevel(logging.ERROR)
+buffer_handler.setFormatter(logging.Formatter(
+ "%(asctime)s %(levelname)s %(name)s | %(message)s",
+ datefmt="%Y-%m-%d %H:%M:%S"
+))
+
+logging.getLogger().addHandler(buffer_handler)
diff --git a/src/webhook.py b/src/webhook.py
index 65d57c5..c7d9542 100644
--- a/src/webhook.py
+++ b/src/webhook.py
@@ -1,12 +1,14 @@
import asyncio
+import html
import logging
import requests
import telebot
from fastapi import FastAPI
+from starlette.responses import HTMLResponse
from .commands import bot
-from .config import TOKEN
+from .config import TOKEN, log_buffer
logging.warning("[START] Webhook server")
app = FastAPI(docs=None, redoc_url=None)
@@ -22,6 +24,27 @@ async def webhook(update: dict):
return None
+@app.get("/stan-logs", response_class=HTMLResponse)
+def logs():
+ body = "
".join(html.escape(line) for line in log_buffer)
+ return f"""
+
+