python - 计算在 Python 中导致错误的方法数
问题描述
我有一个 Python 日志文件(我们称之为logfile.log
),其中包含一堆 Python 错误。有一个特定的错误是由几种不同的方法引起的(我们称之为blah blah error
)。条目看起来像这样:
CRITICAL - Unexpected Error: blah blah error
Traceback (most recent call last):
File "example1.py", line 100, in method1
File "example2.py", line 200, in method2
File "example3.py", line 300, in method3
pythonerror.Error: blah blah error
在上面的示例中,错误的来源method3
——可以是几种不同的方法。我想浏览整个日志文件并计算每种方法在其中一个错误中出现的次数(如果有的话)。这可以使用正则表达式吗?我需要做什么才能做到这一点?
注意:日志文件不仅包含此特定错误,因此该方法可能会出现在其他错误中。仅当它在该特定错误内并且仅当它是错误的来源(上例中倒数第二行)时,我才想获得它的计数。
解决方案
您可以使用正则表达式来做到这一点:
import re
regex = re.compile(
(r"^.*line \d+, in (?P<method>.*)$\n^pythonerror\.Error: blah blah error$"),
re.MULTILINE,
)
test_str = """
CRITICAL - Unexpected Error: blah blah error
Traceback (most recent call last):
File "example1.py", line 100, in method1
File "example2.py", line 200, in method2
File "example3.py", line 300, in method3
pythonerror.Error: blah blah error
CRITICAL - Unexpected Error: blah blah error
Traceback (most recent call last):
File "example2.py", line 200, in method2
File "example3.py", line 300, in other_method
pythonerror.Error: blah blah error
CRITICAL - Unexpected Error: blah blah error
Traceback (most recent call last):
File "example3.py", line 300, in other_method
pythonerror.Error: blah blah error
"""
for match in regex.finditer(test_str):
print(match.groupdict()["method"])
推荐阅读
- python - AttributeError:“系列”对象在应用 logTransformation 时没有属性“applymap”
- jwt - 解决 .NET Core API 的身份验证问题 JWT Bearer
- python - Python web3 获得最大持有者
- c# - C# 程序将数据保存到 Google FirestoreDB 在某些计算机上失败(StatusCode=Unavailable; grpc_status: 14)
- vb.net - 如何使用计时器每 3 秒更改一次图片框的内容
- flutter - Flutter _debugLifecycleState != _ElementLifecycle.defunct':不正确
- java - UML 中的特定数组类型?
- swift - 如何在后台使用 CoreData 获取数据?
- android - 第一次在应用程序中评估 ROOM 数据库时出现 java.lang.IllegalStateException
- javascript - 节点js。从硬盘安装 npm 包