Spaces:
Running
Running
test2
Browse files- src/api/search.py +2 -2
- src/core/logging.py +6 -2
src/api/search.py
CHANGED
|
@@ -328,7 +328,7 @@ async def search_by_face(
|
|
| 328 |
face_vectors_by_angle = {}
|
| 329 |
for result in results:
|
| 330 |
if isinstance(result, Exception):
|
| 331 |
-
log("
|
| 332 |
user_id=user_id or "anonymous", ip=ip,
|
| 333 |
error=str(result), traceback=traceback.format_exc()[-500:])
|
| 334 |
continue
|
|
@@ -341,7 +341,7 @@ async def search_by_face(
|
|
| 341 |
user_id=user_id or "anonymous", ip=ip,
|
| 342 |
angle=name, det_score=face_vecs[0].get("det_score", 0))
|
| 343 |
else:
|
| 344 |
-
log("
|
| 345 |
user_id=user_id or "anonymous", ip=ip,
|
| 346 |
angle=name, vectors_count=len(vectors) if vectors else 0)
|
| 347 |
|
|
|
|
| 328 |
face_vectors_by_angle = {}
|
| 329 |
for result in results:
|
| 330 |
if isinstance(result, Exception):
|
| 331 |
+
log("WARNING", "search.search_by_face.process_error",
|
| 332 |
user_id=user_id or "anonymous", ip=ip,
|
| 333 |
error=str(result), traceback=traceback.format_exc()[-500:])
|
| 334 |
continue
|
|
|
|
| 341 |
user_id=user_id or "anonymous", ip=ip,
|
| 342 |
angle=name, det_score=face_vecs[0].get("det_score", 0))
|
| 343 |
else:
|
| 344 |
+
log("WARNING", "search.search_by_face.no_face_in_angle",
|
| 345 |
user_id=user_id or "anonymous", ip=ip,
|
| 346 |
angle=name, vectors_count=len(vectors) if vectors else 0)
|
| 347 |
|
src/core/logging.py
CHANGED
|
@@ -70,11 +70,15 @@ async def _supabase_log(level: str, event: str, data: dict) -> None:
|
|
| 70 |
|
| 71 |
|
| 72 |
|
|
|
|
|
|
|
|
|
|
| 73 |
def log(level: str, event: str, **data) -> None:
|
| 74 |
-
|
|
|
|
| 75 |
try:
|
| 76 |
loop = asyncio.get_running_loop()
|
| 77 |
-
loop.create_task(_supabase_log(
|
| 78 |
except RuntimeError:
|
| 79 |
pass
|
| 80 |
|
|
|
|
| 70 |
|
| 71 |
|
| 72 |
|
| 73 |
+
_LEVEL_ALIASES = {"WARN": "WARNING", "ERR": "ERROR", "FATAL": "CRITICAL"}
|
| 74 |
+
|
| 75 |
+
|
| 76 |
def log(level: str, event: str, **data) -> None:
|
| 77 |
+
norm_level = _LEVEL_ALIASES.get(level.upper(), level.upper())
|
| 78 |
+
_log_fn(norm_level, f"[{event}] {json.dumps(data, default=str)}")
|
| 79 |
try:
|
| 80 |
loop = asyncio.get_running_loop()
|
| 81 |
+
loop.create_task(_supabase_log(norm_level, event, data))
|
| 82 |
except RuntimeError:
|
| 83 |
pass
|
| 84 |
|