Spaces:
Sleeping
Sleeping
| import logging | |
| import sys | |
| def setup_logging(level: str = "INFO") -> None: | |
| """يُستدعى مرة واحدة عند بدء التطبيق.""" | |
| formatter = logging.Formatter( | |
| fmt="%(asctime)s | %(levelname)-8s | %(name)-20s | %(message)s", | |
| datefmt="%Y-%m-%d %H:%M:%S", | |
| ) | |
| handler = logging.StreamHandler(sys.stdout) | |
| handler.setFormatter(formatter) | |
| root_logger = logging.getLogger() | |
| root_logger.setLevel(getattr(logging, level.upper(), logging.INFO)) | |
| root_logger.handlers.clear() | |
| root_logger.addHandler(handler) | |
| # تقليل ضجيج مكتبات خارجية | |
| logging.getLogger("httpx").setLevel(logging.WARNING) | |
| logging.getLogger("chromadb").setLevel(logging.WARNING) | |
| logging.getLogger("sentence_transformers").setLevel(logging.WARNING) | |
| def get_logger(name: str) -> logging.Logger: | |
| """ | |
| احصل على logger لأي module. | |
| الاستخدام: | |
| from app.core.logging_setup import get_logger | |
| logger = get_logger(__name__) | |
| logger.info("البيانات جاهزة") | |
| logger.warning("لم يتم العثور على شيء") | |
| logger.error("فشل الاتصال", exc_info=True) | |
| """ | |
| return logging.getLogger(name) |