接口自动化-logging日志
目录
1.介绍
2.使用
默认对象:
自定义logger对象:
定义日志输出格式
1.介绍
logging 是 Python 标准库中的⼀个模块,它提供了灵活的日志记录功能。通过 logging ,开发者可以方便地将日志信息输出到控制台、文件、网络等多种目标,同时支持不同级别的日志记录,以满足不同场景下的需求。
2.使用
默认对象:
创建my_logging.py文件测试输入以下代码
import logging#默认情况下loggging输出warning以上的日志logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")
默认情况下loggging输出waning以上的日志
logging.basicConfig可以自定义输出级别(这里设置为info)
import logging#默认情况下loggging输出debug以上的日志
#logging.basicConfig可以自定义输出级别(这里设置为info)
logging.basicConfig(level=logging.INFO)logging.debug("This is a debug message")
logging.info("This is an info message")
logging.warning("This is a warning message")
logging.error("This is an error message")
logging.critical("This is a critical message")
自定义logger对象:
获取日志记录器: logging.getLogger(__name__) 获取⼀个日志记录器对象, name 是当
前模块的名称。使用模块名称作为日志记录器的名称有助于在大型项目中区分不同模块的日志.
设置日志级别:logger.setLevel(logging.DEBUG) 将日志记录器的级别设置为 DEBUG,这意味着所有 DEBUG 及以上级别的日志都会被记录。
日志级别金字塔:DEBUG < INFO < WARNING < ERROR < CRITICAL 高于设定级别的日志才会被处理
创建文件处理器:logging.FileHandler(filename="test.log") 创建一个文件处理器,将日志信息写入到名为 test.log 的文件中。
添加处理器:logger.addHandler(handler) 将文件处理器添加到日志记录器中,这样日志记录器就会使用这个处理器来处理日志信息。
import logginglogging.basicConfig(level=logging.INFO)
#自定义logger对象logger = logging.getLogger("my_logger")logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
值得注意点是 :没有设置级别时默认继承 basicConfig 的级别(这里为INFO)
设置 logger.setLevel() 自定义级别后:
import logging#默认情况下loggging输出warning以上的日志
#logging.S可以自定义输出级别(这里设置为info)
logging.basicConfig(level=logging.INFO)
#
#
# logging.debug("This is a debug message")
# logging.info("This is an info message")
# logging.warning("This is a warning message")
# logging.error("This is an error message")
# logging.critical("This is a critical message")logger = logging.getLogger("my_logger")
#给logger对象配置自定义级别
logger.setLevel(level=logging.DEBUG)logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")
假如我们要将日志输出到其他文件中,我们可以创建一个文件处理器(FileHandler)--将日志输入到指定文件中(没有文件会自动创建)
运行前
运行后
定义日志输出格式
my_logger 文件中默认只有打印的语句,没有信息、级别等信息,我们需要设置一个日志格式器添加在处理器上达到我们需要的效果。(这意味着处理器在处理日志信息时,会使用这个格式器来格式化日志信息)
logging.Formatter 是用于定义日志输出格式的类。在构造函数中,传递了⼀个格式字符串,用于指定日志信息的格式。格式字符串中使用了⼀些特殊的占位符(以 % 开头),这些占位符会被替换为相应的日志信息内容
格式占位符 | 说明 |
%(asctime)s | 日志记录的时间戳,通常显示为日期和时间。 |
%(levelname)s | 日志级别(如DEBUG、INFO、WARNING、ERROR、CRITICAL)。 |
%(name)s | 日志记录器的名称,通常为模块名称。 |
%(filename)s | 日志记录发生的文件名。 |
%(funcName)s | 日志记录发生的函数名。 |
%(lineno)d | 日志记录发生的行号。 |
%(message)s | 日志消息本身。 |
import logging#默认情况下loggging输出warning以上的日志
#logging.S可以自定义输出级别(这里设置为info)
logging.basicConfig(level=logging.INFO)logger = logging.getLogger("my_logger")
#给logger对象配置自定义级别
logger.setLevel(level=logging.DEBUG)#创建文件处理器--将日志输出到指定文件(可以自动创建)
handler = logging.FileHandler('my_logger.log')# 创建⼀个⽇志格式器对象
formatter = logging.Formatter(
"%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d)] - %(message)s"
)#将格式器添加到处理器中
handler.setFormatter(formatter)#将处理器添加到日志文件中
logger.addHandler(handler)logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")
logger.critical("This is a critical message")