File size: 664 Bytes
be14f74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# core/failsafe_core.py
import traceback
import datetime

def failsafe(alert_manager):
    def decorator(func):
        def wrapper(*args, **kwargs):
            try:
                return func(*args, **kwargs)
            except Exception as e:
                ts = datetime.datetime.now().isoformat()
                msg = f"[FAILSAFE][{ts}] Error in {func.__name__}: {e}\\nTraceback:\\n{traceback.format_exc()}"
                try:
                    alert_manager.send(msg)
                except Exception as send_e:
                    print("[FailSafe] Alert send failed:", send_e)
                return None
        return wrapper
    return decorator