• python 日志处理(基础篇)


    Logging处理

    日志级别等级排序:critical > error > warning > info > debug
    debug : 打印全部的日志( notset 等同于 debug )
    info : 打印 info, warning, error, critical 级别的日志
    warning : 打印 warning, error, critical 级别的日志
    error : 打印 error, critical 级别的日志
    critical : 打印 critical 级别

    简单的使用一下

    import logging
    
    
    # 打印日志级别
    def test_logging():
        logging.debug('Python debug')
        logging.info('Python info')
        logging.warning('Python warning')
        logging.error('Python Error')
        logging.critical('Python critical')
    
    
    test_logging()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    当指定一个日志级别之后,会记录大于或等于这个日志级别的日志信息,小于的将会被丢弃,默认情况下日志打印只显示大于等于 WARNING 级别的日志

    设置级别

    def test_logging():
        logging.basicConfig(level=logging.INFO)  # 设置级别
        logging.debug('Python debug')
        logging.info('Python info')
        logging.warning('Python warning')
        logging.error('Python Error')
        logging.critical('Python critical')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    可以看到我们修改级别之后从我们设置的级别开始打印了,小于这个级别的不会去显示

    设置日志文件

    logging.basicConfig(filename="1.log", level=logging.INFO)  # 设置日志文件,级别
    
    • 1

    然后就会在你所在.py文件的相对路径生成一个.log的文件,里面打印的内容一模一样
    在这里插入图片描述

    多模块记录日志

    import logging
    import mylog  # 引入外部文件
    
    
    # 打印日志级别
    def test_logging():
        logging.basicConfig(filename="1.log", level=logging.INFO)  # 设置日志文件,级别
        logging.debug('Python debug')
        logging.info('4 info')
        mylog.dolog()
        logging.warning('Python warning')
        logging.error('Python Error')
        logging.critical('Python critical')
    
    
    test_logging()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    自己手动随便写一个函数,练练手就好了
    在这里插入图片描述
    结果如下:
    在这里插入图片描述
    接下来我们使用常规的日志处理操作(简单版)

    import logging
    
    # 创建日志器对象
    logger = logging.getLogger("tang")
    logger.setLevel("INFO")  # 优先级最大
    # 创建日志控制台处理器
    con = logging.StreamHandler()
    # 创建文本处理器
    ben = logging.FileHandler("2.log")
    # 控制台日期输入等级
    con.setLevel(level="WARNING")  # 其次是它
    # 设置输出格式
    console_fmt = "%(name)s,%(message)s,%(asctime)s"
    file_fmt = "%(filename)s,%(asctime)s,%(levelname)s"
    fmt1 = logging.Formatter(fmt=console_fmt)
    fmt2 = logging.Formatter(fmt=file_fmt)
    con.setFormatter(fmt1)
    ben.setFormatter(fmt2)
    # 添加控制台处理器
    logger.addHandler(con)
    logger.addHandler(ben)
    # 定义过滤器
    # filt1 = logging.Filter("tang")  # 过滤名字
    # 关联过滤器
    # logger.addFilter(filt1)
    # 可以单独加过滤器
    # con.addFilter()
    # ben.addFilter()
    
    logger.debug('Python debug')
    logger.info('Python info')
    logger.warning('Python warning')
    logger.error('Python Error')
    logger.critical('Python critical')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    # 杂谈偶感 × 基于QFD方法的质量屋构建
    2023高教社杯国赛数学建模C题思路+模型+代码(9.7晚开赛后第一时间更新)
    JavaScript 69 JavaScript Web API 69.2 JavaScript 验证 API
    Linux ARM平台开发系列讲解(CAN) 2.14.1 CAN基础协议分析
    mysql XA 分布式事务
    tauri使用github进行打包和自动更新教程
    语音合成技术入门之Tacotron
    动态组件中的keep-alive的作用
    FluentValidation在C# WPF中的应用
    WinForm TextBox默认中英文输入法设置
  • 原文地址:https://blog.csdn.net/LOVE_jianshen/article/details/126814478