Spaces:
Running
Running
| import functools | |
| import logging | |
| import traceback | |
| logger = logging.getLogger("tool_logger") | |
| logger.setLevel(logging.INFO) | |
| def log_tool_entry(func): | |
| def wrapper(*args, **kwargs): | |
| # Clean up args/kwargs for cleaner logging (optional: truncate long strings) | |
| clean_args = [str(a)[:100] + "..." if isinstance(a, str) and len(a) > 100 else a for a in args] | |
| clean_kwargs = {k: (str(v)[:100] + "..." if isinstance(v, str) and len(v) > 100 else v) for k, v in kwargs.items()} | |
| logger.info(f"🛠️ Tool Invoked: {func.__name__} | Args: {clean_args} | Kwargs: {clean_kwargs}") | |
| try: | |
| result = func(*args, **kwargs) | |
| return result | |
| except Exception as e: | |
| tb = traceback.format_exc() | |
| logger.error(f"❌ Tool Failed: {func.__name__} | Error: {e}\nTraceback:\n{tb}") | |
| raise | |
| return wrapper | |