上传文件至 /
This commit is contained in:
parent
f1e120c48a
commit
e86cee955e
40
global_exc_handler.py
Normal file
40
global_exc_handler.py
Normal file
|
@ -0,0 +1,40 @@
|
|||
import traceback,sys
|
||||
from Log4p.core import *
|
||||
|
||||
Mainlogger = LogManager().GetLogger("MainThread")
|
||||
|
||||
def format_java_stack_trace(exctype, value, tb, nested=False):
|
||||
tb_list = traceback.extract_tb(tb)
|
||||
|
||||
if nested:
|
||||
exception_info = f"{exctype.__name__}: {value}\n"
|
||||
else:
|
||||
exception_info = f"Exception has occurred: {exctype.__name__}: {value}\n"
|
||||
|
||||
for filename, lineno, funcname, line in tb_list:
|
||||
exception_info += f" at {funcname} ({filename}:{lineno})\n"
|
||||
|
||||
# 检查是否有原因和其他信息
|
||||
cause = getattr(value, '__cause__', None)
|
||||
context = getattr(value, '__context__', None)
|
||||
if cause:
|
||||
exception_info += "Caused by: "
|
||||
exception_info += format_java_stack_trace(type(cause), cause, cause.__traceback__, nested=True)
|
||||
if context:
|
||||
exception_info += "Suppressed: "
|
||||
exception_info += format_java_stack_trace(type(context), context, context.__traceback__, nested=True)
|
||||
|
||||
return exception_info
|
||||
|
||||
def exception_hook(exctype, value, tb):
|
||||
# 获取回溯信息并格式化为字符串
|
||||
tb_str = format_java_stack_trace(exctype, value, tb)
|
||||
|
||||
# 记录异常信息到日志
|
||||
exception_info = "发生异常:\n"
|
||||
exception_info += tb_str
|
||||
Mainlogger.critical(exception_info)
|
||||
|
||||
|
||||
sys.excepthook = exception_hook
|
||||
|
Loading…
Reference in New Issue
Block a user