在 Python 中将日志写入文件

Muhammad Maisam Abbas 2023年10月10日
  1. 使用 Python 中的 logging 模块将日志写入文件
  2. 使用 Python 中的 logging.FileHandler() 函数将日志写入文件
在 Python 中将日志写入文件

本教程将介绍在 Python 中将日志写入文件的方法。

使用 Python 中的 logging 模块将日志写入文件

日志用于调试程序并找出出错的地方。logging 模块 用于在 Python 中将数据记录到文件中。我们可以使用 logging.basicConfig() 函数来配置要写入特定文件的日志。默认情况下,我们可以使用 logging 模块记录 5 种类型的行。这些消息类型包括调试、信息、警告、错误和严重。尽管如此,我们可以通过编码将这个数字增加到我们需要的任何数量。以下代码示例向我们展示了如何使用 logging.basicConfig() 函数将日志写入文件。

import logging

# Creating and Configuring Logger

Log_Format = "%(levelname)s %(asctime)s - %(message)s"

logging.basicConfig(
    filename="logfile.log", filemode="w", format=Log_Format, level=logging.ERROR
)

logger = logging.getLogger()

# Testing our Logger

logger.error("Our First Log Message")

logfile.log 的文件内容:

ERROR 2021-06-13 04:14:29,604 - Our First Log Message

我们使用上面代码中的 logging.basicConfig() 函数编写了级别为 error 的日志消息 Our First Log Message 以及正确的日志记录日期和时间。编写日志时最重要的是它们发生的日期和时间。因此,我们首先在 Log_Format 字符串中为我们的日志创建了一个格式。这种格式包括日志的级别、发生的日期和时间以及要写入的消息。

然后,我们使用 logging.basicConfig() 函数的 filename 参数来指定日志文件。我们将值 a 分配给 logging.basicConfig() 函数的 filemode 参数,以在 append 模式下打开文件,这样每次有新日志时就不会删除以前的日志。然后我们将 format 参数设置为 Log_Format。在该步骤之后,我们将 logging.ERROR 分配给 level 参数以指定日志的最低级别错误。我们使用 logger = logging.getLogger() 创建了一个记录器对象来写入日志消息。最后,我们用 logger.error("Our First Log Message") 编写了错误消息。

使用 Python 中的 logging.FileHandler() 函数将日志写入文件

我们还可以使用 logging.FileHandler() 函数 在 Python 中将日志写入文件。此函数采用我们要写入日志的文件路径。然后我们可以使用 addHandler() 函数将此处理程序添加到我们的记录器对象中。下面的代码演示了如何使用 logging.FileHandler() 函数将日志写入文件。

import logging

logger = logging.getLogger()
handler = logging.FileHandler("logfile.log")
logger.addHandler(handler)
logger.error("Our First Log Message")

logfile.log 内容:

Our First Log Message

我们使用上面代码中的 logging.FileHandler() 函数将日志消息 Our First Log Message 写入文件 logfile.log。我们首先创建了一个 logger 对象,我们将使用该对象通过 logging.getLogger() 函数编写日志。然后,我们创建一个文件处理程序 handler,并为其分配 logging.FileHandler('logfile.log')。之后,我们使用 logger.addHandler(handler) 将这个新的 handler 添加到我们的记录器对象中。最后,我们使用 logger.error('Our First Log Message') 将错误消息写入我们的文件。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Python Logging