博客
关于我
python logging basicconfig_python之logging.basicConfig
阅读量:798 次
发布时间:2023-03-06

本文共 2573 字,大约阅读时间需要 8 分钟。

在自动化测试中,软件运行会出现错误,这时候日志就显得尤为重要。对于开发人员来说,及时发现问题并定位错误至关重要,而日志记录是实现这一目标的关键。Python中的logging模块为开发者提供了强大的日志管理功能,能够帮助我们更好地跟踪应用程序的运行状态。

日志的级别划分

日志等级是日志记录的基础,决定了日志信息的重要性和紧急程度。Python的logging模块定义了五个日志等级,从低到高依次是:DEBUG、INFO、WARNING、ERROR、CRITICAL。开发者可以根据实际需求选择合适的日志等级,例如:

  • INFO:用于一般的信息记录,适合程序运行的正常状态报告。
  • DEBUG:用于调试和详细信息的记录,通常只在开发阶段使用。
  • ERROR:用于报告错误和异常,帮助开发者快速定位问题。
  • WARNING:表示潜在的问题或即将发生的问题,需要开发者的关注。
  • CRITICAL:表示严重问题,可能导致程序崩溃或数据丢失,必须立即处理。

logging模块的组成部分

logging模块包含四个主要部分:

  • Logger: 用于创建日志记录器,管理多个日志实例。
  • Handler: 负责将日志记录发送到指定的目标,例如文件或控制台。
  • Filter: 提供日志过滤功能,允许开发者选择记录哪些日志信息。
  • Formatter: 定义日志信息的格式,例如时间、日期、函数名称等。
  • 配置日志的三种方式

    logging模块提供了三种配置日志的方式,满足不同开发者的需求:

  • 基础配置:直接使用logging.basicConfig函数,例如:

    logging.basicConfig(    filename="config.log",    filemode="w",    format="%(asctime)s-%(name)s-%(levelname)s-%(message)s",    level=logging.INFO)

    这种方式简单易用,适合需要快速配置日志的场景。

  • 配置文件方式:使用logging configFile函数读取外部配置文件,例如:

    logging.config(    filename="logging_config.cfg",    defaults=None,    disable_existing_loggers=True)

    这种方式适合团队协作,允许配置文件被其他开发者编辑和管理。

  • 字典配置方式:使用logging dictConfig函数,通过字典定义日志配置,例如:

    logging.config(    dict={        'version': 1,        'handlers': {            'file': {                'class': 'logging.FileHandler',                'filename': 'app.log',                'mode': 'w',            },            'console': {                'class': 'logging.StreamHandler',            }        },        'loggers': {            'myapp': {                'level': 'DEBUG',                'handlers': ['file', 'console'],                'propagate': False            }        }    },    defaults=None,    disable_existing_loggers=True)

    这种方式提供了更高的可定制性,适合需要复杂日志配置的项目。

  • 日志格式化

    logging模块支持丰富的日志格式化选项,通过format参数可以定义日志输出的内容。常用的格式化字段包括:

    • %(asctime)s:记录当前时间(格式化的时间字符串)。
    • %(levelname)s:记录日志等级名称。
    • %(name)s:记录日志记录器的名称。
    • %(message)s:记录日志信息内容。
    • %(filename)s:记录当前执行文件名。
    • %(lineno)d:记录日志信息的行号。
    • %(thread)d:记录当前线程ID。
    • %(process)d:记录当前进程ID。

    开发者可以根据需求选择合适的字段组合,例如:

    logging.basicConfig(    filename="app.log",    filemode="w",    format="%(asctime)s - %(levelname)s - %(name)s - %(message)s")

    日志输出

    通过logging模块,日志信息可以输出到控制台或文件中。默认情况下,日志信息会输出到sys.stderr,但可以通过配置文件或字典配置将输出目标更改为文件。这种灵活的输出方式使得日志管理更加方便。

    logging.basicConfig函数的参数说明

    logging.basicConfig函数提供了多个参数,用于定义日志的输出格式和行为:

    • filename:指定日志文件名,默认为None,表示不写入文件。
    • filemode:指定日志文件的打开模式,可选'w'(写入)或'a'(追加)。
    • format:定义日志输出的格式,使用%(...)s的格式字符串。
    • datefmt:定义时间格式,使用time.strftime()的格式。
    • level:设置日志的最低级别,默认为logging.WARNING
    • stream:指定日志输出的流,默认为sys.stderr,当filenamestream同时指定时,stream将被忽略。

    通过合理配置这些参数,开发者可以根据需求控制日志的输出格式和行为,使日志管理更加高效和可靠。

    通过以上方法,开发者可以根据项目需求选择合适的日志配置方式,充分发挥logging模块的强大功能,从而更好地管理和跟踪应用程序的运行状态。

    转载地址:http://haafk.baihongyu.com/

    你可能感兴趣的文章
    Python asyncio库的学习和使用
    查看>>
    Python AttributeError:“dict“对象没有属性“append“
    查看>>
    Python base64和hashlib模块
    查看>>
    python basic programs
    查看>>
    python bert_gen.py 报错Unable to load weights from pytorch checkpoint file for......
    查看>>
    python binascii.Error: Incorrect padding
    查看>>
    Python bool() 函数能否为无效参数引发异常?
    查看>>
    Python C 程序子进程在“for line in iter“处挂起
    查看>>
    Python Celery:自动化测试平台定时任务必备的三方库
    查看>>
    python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令
    查看>>
    Python CONNECT 4 CHECK WIN函数
    查看>>
    python cos,Python cos(90)和cos(270)不是0
    查看>>
    python进阶(4):Python 脚本文件重启自身进程
    查看>>
    python ctypes库中动态链接库加载方式
    查看>>
    python cv2 图像( np array )转 HObject
    查看>>
    python进阶(3):文件操作
    查看>>
    python cv2截取不规则区域图片
    查看>>
    python CV2裁剪图片并保存
    查看>>
    python进阶(2):pyecharts使用
    查看>>
    python cv2读取rtsp实时码流按时生成连续视频文件
    查看>>