在 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')
将错误消息写入我们的文件。
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