LogicGoInfotechSpaces commited on
Commit
41f748f
·
1 Parent(s): 16407bf

Add detailed MongoDB logging and verification endpoint

Browse files

- Add detailed logging showing database and collection names
- Add verification step to confirm document exists after insert
- Add /mongo-status endpoint to check MongoDB connection and data
- Log database/collection names in all insert operations
- This will help diagnose why data might not be appearing in MongoDB

Files changed (1) hide show
  1. api/main.py +88 -9
api/main.py CHANGED
@@ -463,6 +463,37 @@ def logging_status(_: None = Depends(bearer_auth)) -> Dict[str, object]:
463
  return _admin_logging_status()
464
 
465
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  @app.post("/upload-image")
467
  def upload_image(image: UploadFile = File(...), _: None = Depends(bearer_auth)) -> Dict[str, str]:
468
  file_id = _save_upload_to_gridfs(image, "image")
@@ -618,11 +649,23 @@ def inpaint(req: InpaintRequest, request: Request, _: None = Depends(bearer_auth
618
 
619
  if mongo_logs is not None:
620
  try:
621
- log.debug("Inserting log document: %s", log_doc)
 
622
  result = mongo_logs.insert_one(log_doc)
623
- log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s", result.inserted_id, output_name, status)
 
 
 
 
 
 
 
 
 
 
 
624
  except Exception as mongo_err:
625
- log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc)
626
  else:
627
  log.warning("MongoDB not configured, skipping log insert")
628
 
@@ -704,10 +747,22 @@ def inpaint_url(req: InpaintRequest, request: Request, _: None = Depends(bearer_
704
  log_doc["error"] = error_msg
705
  if mongo_logs is not None:
706
  try:
 
707
  result = mongo_logs.insert_one(log_doc)
708
- log.info("Mongo log inserted successfully: _id=%s, output_id=%s", result.inserted_id, output_name)
 
 
 
 
 
 
 
 
 
 
 
709
  except Exception as mongo_err:
710
- log.error("Mongo log insert failed: %s", mongo_err)
711
  else:
712
  log.warning("MongoDB not configured, skipping log insert")
713
 
@@ -879,10 +934,22 @@ def inpaint_multipart(
879
  log_doc["error"] = error_msg
880
  if mongo_logs is not None:
881
  try:
 
882
  result = mongo_logs.insert_one(log_doc)
883
- log.info("Mongo log inserted successfully: _id=%s, output_id=%s", result.inserted_id, output_name)
 
 
 
 
 
 
 
 
 
 
 
884
  except Exception as mongo_err:
885
- log.error("Mongo log insert failed: %s", mongo_err)
886
  else:
887
  log.warning("MongoDB not configured, skipping log insert")
888
 
@@ -1025,10 +1092,22 @@ def remove_pink_segments(
1025
  log_doc["error"] = error_msg
1026
  if mongo_logs is not None:
1027
  try:
 
1028
  result = mongo_logs.insert_one(log_doc)
1029
- log.info("Mongo log inserted successfully: _id=%s, output_id=%s", result.inserted_id, output_name)
 
 
 
 
 
 
 
 
 
 
 
1030
  except Exception as mongo_err:
1031
- log.error("Mongo log insert failed: %s", mongo_err)
1032
  else:
1033
  log.warning("MongoDB not configured, skipping log insert")
1034
 
 
463
  return _admin_logging_status()
464
 
465
 
466
+ @app.get("/mongo-status")
467
+ def mongo_status(_: None = Depends(bearer_auth)) -> Dict[str, object]:
468
+ """Check MongoDB connection status and verify data storage."""
469
+ status = {
470
+ "mongo_configured": MONGO_URI is not None,
471
+ "mongo_connected": mongo_client is not None,
472
+ "database": mongo_db.name if mongo_db else None,
473
+ "collection": mongo_logs.name if mongo_logs else None,
474
+ "admin_logging": _admin_logging_status(),
475
+ }
476
+
477
+ # Try to count documents in api_logs collection
478
+ if mongo_logs is not None:
479
+ try:
480
+ count = mongo_logs.count_documents({})
481
+ status["api_logs_count"] = count
482
+ # Get latest document
483
+ latest = mongo_logs.find_one(sort=[("timestamp", -1)])
484
+ if latest:
485
+ status["latest_log"] = {
486
+ "_id": str(latest.get("_id")),
487
+ "output_id": latest.get("output_id"),
488
+ "status": latest.get("status"),
489
+ "timestamp": latest.get("timestamp").isoformat() if isinstance(latest.get("timestamp"), datetime) else str(latest.get("timestamp")),
490
+ }
491
+ except Exception as err:
492
+ status["api_logs_error"] = str(err)
493
+
494
+ return status
495
+
496
+
497
  @app.post("/upload-image")
498
  def upload_image(image: UploadFile = File(...), _: None = Depends(bearer_auth)) -> Dict[str, str]:
499
  file_id = _save_upload_to_gridfs(image, "image")
 
649
 
650
  if mongo_logs is not None:
651
  try:
652
+ log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
653
+ log.debug("Log document: %s", log_doc)
654
  result = mongo_logs.insert_one(log_doc)
655
+ log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
656
+ result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
657
+
658
+ # Verify the insert by reading it back
659
+ try:
660
+ verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
661
+ if verify_doc:
662
+ log.info("Verified: Document exists in MongoDB after insert")
663
+ else:
664
+ log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
665
+ except Exception as verify_err:
666
+ log.warning("Could not verify insert: %s", verify_err)
667
  except Exception as mongo_err:
668
+ log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
669
  else:
670
  log.warning("MongoDB not configured, skipping log insert")
671
 
 
747
  log_doc["error"] = error_msg
748
  if mongo_logs is not None:
749
  try:
750
+ log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
751
  result = mongo_logs.insert_one(log_doc)
752
+ log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
753
+ result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
754
+
755
+ # Verify the insert by reading it back
756
+ try:
757
+ verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
758
+ if verify_doc:
759
+ log.info("Verified: Document exists in MongoDB after insert")
760
+ else:
761
+ log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
762
+ except Exception as verify_err:
763
+ log.warning("Could not verify insert: %s", verify_err)
764
  except Exception as mongo_err:
765
+ log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
766
  else:
767
  log.warning("MongoDB not configured, skipping log insert")
768
 
 
934
  log_doc["error"] = error_msg
935
  if mongo_logs is not None:
936
  try:
937
+ log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
938
  result = mongo_logs.insert_one(log_doc)
939
+ log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
940
+ result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
941
+
942
+ # Verify the insert by reading it back
943
+ try:
944
+ verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
945
+ if verify_doc:
946
+ log.info("Verified: Document exists in MongoDB after insert")
947
+ else:
948
+ log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
949
+ except Exception as verify_err:
950
+ log.warning("Could not verify insert: %s", verify_err)
951
  except Exception as mongo_err:
952
+ log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
953
  else:
954
  log.warning("MongoDB not configured, skipping log insert")
955
 
 
1092
  log_doc["error"] = error_msg
1093
  if mongo_logs is not None:
1094
  try:
1095
+ log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
1096
  result = mongo_logs.insert_one(log_doc)
1097
+ log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
1098
+ result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
1099
+
1100
+ # Verify the insert by reading it back
1101
+ try:
1102
+ verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
1103
+ if verify_doc:
1104
+ log.info("Verified: Document exists in MongoDB after insert")
1105
+ else:
1106
+ log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
1107
+ except Exception as verify_err:
1108
+ log.warning("Could not verify insert: %s", verify_err)
1109
  except Exception as mongo_err:
1110
+ log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
1111
  else:
1112
  log.warning("MongoDB not configured, skipping log insert")
1113