| """Betterstack logging for API endpoint calls.""" | |
| import os | |
| import time | |
| from datetime import datetime, timezone | |
| import requests | |
| BETTERSTACK_URL = "https://in.logs.betterstack.com" | |
| def log_to_betterstack( | |
| endpoint_name: str, | |
| original_text: str, | |
| formatted_text: str | dict, | |
| model_name: str, | |
| time_elapsed: float, | |
| ) -> None: | |
| token = os.environ.get("BETTERSTACK_SOURCE_TOKEN") | |
| if not token: | |
| return | |
| payload = { | |
| "dt": datetime.now(timezone.utc).isoformat(), | |
| "message": f"Endpoint called: {endpoint_name}", | |
| "endpoint_name": endpoint_name, | |
| "model_name": model_name, | |
| "original_text": original_text, | |
| "formatted_text": formatted_text, | |
| "time_elapsed": round(time_elapsed, 4), | |
| "request_date": datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S"), | |
| "level": "info" | |
| } | |
| try: | |
| requests.post( | |
| BETTERSTACK_URL, | |
| json=payload, | |
| headers={ | |
| "Authorization": f"Bearer {token}", | |
| "Content-Type": "application/json", | |
| }, | |
| timeout=5, | |
| ) | |
| except Exception: | |
| pass | |