python 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号
时间: 2023-09-17 12:05:39 浏览: 83
可以使用Python的traceback模块来实现一个简单的错误记录功能小模块。该模块提供了一些函数来跟踪和记录Python程序的异常信息。
首先,我们可以在产生错误的地方调用`traceback.format_exc()`函数,该函数会返回一个字符串,包含当前错误的堆栈跟踪信息。我们可以将这个字符串记录下来。
然后,我们可以使用`sys.exc_info()`函数来获取当前的异常信息。该函数返回一个元组,包含当前异常的类型、错误对象和跟踪对象。我们可以从跟踪对象中获取错误发生的文件名和行号信息。
接下来,我们可以将错误信息和堆栈跟踪信息写入一个文件或者输出到控制台。
下面是一个简单实现的示例代码:
```python
import traceback
import sys
def log_error():
try:
# 让程序产生一个错误
raise ValueError('示例错误')
except:
# 获取错误信息
error_type, error_value, error_traceback = sys.exc_info()
# 获取错误发生的文件名和行号信息
file_name = traceback.extract_tb(error_traceback)[-1].filename
line_number = traceback.extract_tb(error_traceback)[-1].lineno
# 将错误信息和堆栈跟踪信息记录下来
error_message = f'错误类型:{error_type}\n错误内容:{error_value}\n文件名:{file_name}\n行号:{line_number}\n堆栈跟踪:\n{traceback.format_exc()}'
with open('error_logs.txt', 'a') as f:
f.write(error_message + '\n')
# 或者直接输出到控制台
print(error_message)
# 调用函数进行错误记录
log_error()
```
运行以上代码后,程序会产生一个错误,并记录错误信息、错误文件名、行号和堆栈跟踪信息到名为`error_logs.txt`的文件中。你可以根据实际情况修改日志记录的方式。
阅读全文