文章目录
1. Python 日志示例
日志能够帮助我们监控程序的运行状态。通过日志我们可以看到程序是否引发了什么警告或错误。我们记录时间戳、消息、堆栈等详细信息。
在程序中使用任何日志函数之前,你需要显式地导入 Python 的 logging 库。
import logging
# then some logging statement(s)
以下是 Python 中 logging 库使用的一个例子。
import logging
logging.warning("This is a simple logging example")
执行和输出:
接下来我们来学习一下日志的不同级别、如何设置日志级别等一些内容。
2. 记录日志消息到日志文件
使用 Python 的 logging 模块,你可以将调试行、信息、警告、错误、严重错误等记录到日志文件,而不只是回显到控制台。
要记录数据到文件中去,使用 logging 的基本配置即可,将日志文件的地址传给 filename 参数。如果该文件不存在,Python 系统将新建这个文件,所以你应该分配该文件所在目录的文件的新建和写入权限给启动该 Python 程序的用户。使用 logging 模块的 basicConfig() 函数来设置 filename 参数的基本语法如下所示。
logging.basicConfig(filename="mylog.log")
你可以根据自己的需要对文件名进行改写。
2.1. 记录 logging 消息到日志文件
在接下来的示例中,我们将使用 basicConfig() 函数设置 logging 配置,记录消息到一个名为 mylog.log 的外部文件。如果不提供完整路径的话,该文件将会在程序的执行目录下创建。
# Python Example for Logging Messages to Log File
import logging
logging.basicConfig(filename="mylog.log")
logging.warning("This is a WARNING message")
logging.error("This is an ERROR message")
logging.critical("This is a CRITICAL message")
执行和输出:
查看当前程序目录,发现有新文件 mylog.log 生成:
查看其内容:
可见 logging 消息已追加到了该文件。
2.3. 使用 handler 记录 logging 消息到日志文件的例子
本示例在上小节例子的基础上做了改进,使用了 handler 来处理日志文件的写入。
# Python Example for Logging Messages to Log File using Handler
import logging
# create a logger
logger = logging.getLogger("mylogger")
handler = logging.FileHandler("mylog.log")
logger.addHandler(handler)
logger.warning("This is a WARNING message by handler")
logger.error("This is an ERROR message by handler")
logger.critical("This is a CRITICAL message by handler")
执行和输出:
再次查看日志文件:
logging 消息已追加到了该日志文件中,只是格式上与上小节中的略有不同。
3. 打印 DEBUG 级别的日志
要使用 logging 打印一行 DEBUG 级别的日志,
- 检查日志级别是否至少是 DEBUG。
- 使用 logging.debug() 方法,将消息作为参数传递给它,以将 DEBUG 行日志打印到控制台或日志文件。
当 logging 级别设置为 DEBUG 以后,logging 将会把 DEBUG 行打印到控制台或日志文件。
当你设置 logging 级别为 INFO、WARNING、ERROR 或 CRITICAL 时,DEBUG<