Python错误信息输出:如何将错误信息保存到日志文件中
发布时间:2023-12-16 03:21:12
在Python中,可以将错误信息保存到日志文件中以便后续分析和调试。要实现这一功能,可以使用logging模块。下面是一个示例代码,演示了如何将错误信息保存到日志文件中:
import logging
def divide_numbers(a, b):
try:
result = a / b
return result
except Exception as e:
# 创建一个logger对象,用来记录错误信息
logger = logging.getLogger('error_logger')
logger.setLevel(logging.ERROR)
# 创建一个文件handler,用来写入日志文件
file_handler = logging.FileHandler('error.log')
file_handler.setLevel(logging.ERROR)
# 创建一个格式化器,用来设置日志的格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 将file_handler添加到logger中
logger.addHandler(file_handler)
# 将错误信息写入日志文件
logger.error(f'Division error: {e}', exc_info=True)
return None
# 调用divide_numbers函数,输出结果和错误信息
result = divide_numbers(10, 0)
print(result)
在上述代码中,我们先定义了一个divide_numbers函数,该函数用于执行除法操作,输入两个数字,返回它们的商。在函数体内部,我们使用try和except语句捕获可能出现的异常。如果出现除以零的错误,将错误信息写入日志文件。
首先,我们创建一个名为error_logger的logger对象,并设置其级别为ERROR,这样只有ERROR级别和更高级别的日志信息才会被记录到日志文件中。
接下来,我们创建一个名为error.log的日志文件的FileHandler对象,并将其级别也设置为ERROR。然后,我们创建一个格式化器formatter,可以自定义日志的格式。
最后,我们将file_handler添加到logger中,并使用logger.error方法将错误信息写入日志文件。exc_info=True参数表示要包含完整的异常信息。
执行以上代码后,如果出现除以零的错误,错误信息将被写入到error.log文件中。
2021-08-20 15:51:32,394 - ERROR - Division error: division by zero
Traceback (most recent call last):
File "filename.py", line 8, in divide_numbers
result = a / b
ZeroDivisionError: division by zero
希望以上信息对您有所帮助!
