如何使用python正则表达式从回溯中提取错误细节?
我想从回溯中提取错误细节,这些回溯是使用从日志文件中提取的,有很多不同类型的回溯,如下所示:如何使用python正则表达式从回溯中提取错误细节?,python,regex,traceback,Python,Regex,Traceback,我想从回溯中提取错误细节,这些回溯是使用从日志文件中提取的,有很多不同类型的回溯,如下所示: Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_c
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/env/common/test/test/__main__.py", line 5, in <module>
main()
File "/root/env/common/test/test/cli/parser.py", line 55, in main
run_script(args)
File "/root/env/common/test/test/cli/runner.py", line 124, in run_script
exec_script(args.script, scope=globals(), root=True)
File "/root/workspace/group/test_regression_utils.py", line 123, in exec_script
cli_exec_script(*args,**kwargs)
File "/root/env/common/test/test/cli/runner.py", line 186, in exec_script
exec(compile(code, scriptpath, 'exec')) in scope
File "shiju_12.py", line 30, in <module>
File "/root/moaworkspace/group/testscript/utils/shiju_public.py", line 37, in shiju_move
Exception: close failed!
EndOfStream
EndOfStream
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/env/common/test/test/__main__.py", line 5, in <module>
main()
File "/root/env/common/test/test/cli/parser.py", line 55, in main
run_script(args)
File "/root/env/common/test/test/cli/runner.py", line 124, in run_script
exec_script(args.script, scope=globals(), root=True)
File "/root/env/common/test/test/cli/runner.py", line 186, in exec_script
exec(compile(code, scriptpath, 'exec')) in scope
File "/root/env/common/mator/mator/mator.py", line 520, in start
raise IOError("RPC server not started!")
IOError: RPC server not started
我尝试了detail\u regex=r'Traceback.*\n(\s+.*\n)*(.*)\n*'
第二个回溯是正确的,但第一个回溯结果是(“异常:关闭失败!”,“EndOfStream”)
有什么想法吗 如果我将您的模式更改为
Traceback.*\n(\s+.*\n)*(.*?)\n*
,它适用于给定的示例。不过,我不确定它是否能完全解决您的问题。检查回溯对象可能是一个更好的主意(虽然我记不清它们的确切名称)。噢,回溯是从日志文件中获得的。链接指向此answer@SwiftsNamesake我已更新您可以使用前瞻来定义何时停止匹配。
("XXXX", "Exception: close failed!")
("XXXX","IOError: RPC server not started")