• python中的logging模块——将日志保存到文件中


    python中的logging模块可以轻松实现日志的打印和输出,方便对程序运行状态的查看和分析,logging模块使用的一般步骤如下:

    #导入logging模块
    import logging
    
    # 创建一个loggger,并设置日志级别
    logger = logging.getLogger()
    logger.setLevel(logging.DEBUG)
    
    # 创建一个handler,用于将日志输出到控制台,并设置日志级别
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)
    
    # 定义handler的输出格式
    formatter = logging.Formatter(
        '%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]''-%(levelname)s-[日志信息]: %(message)s')
    ch.setFormatter(formatter)
    
    # 给logger添加handler
    logger.addHandler(ch)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    使用实例:

    #导入logging模块
    import logging
    
    def logger(file_log):
        '''
        打日志
        :param file_log: 日志文件名,类型string;
        '''
        # 创建一个loggger,并设置日志级别
        logger = logging.getLogger()
        logger.setLevel(logging.DEBUG)
        
        # 创建一个handler,用于写入日志文件,并设置日志级别,mode:a是追加写模式,w是覆盖写模式
        fh = logging.FileHandler(filename=file_log, encoding='utf-8', mode='w')
        fh.setLevel(logging.INFO)
        
        # 创建一个handler,用于将日志输出到控制台,并设置日志级别
        ch = logging.StreamHandler()
        ch.setLevel(logging.INFO)
        
        # 定义handler的输出格式
        formatter = logging.Formatter(
            '%(asctime)s-%(name)s-%(filename)s-[line:%(lineno)d]''-%(levelname)s-[日志信息]: %(message)s')
        fh.setFormatter(formatter)
        ch.setFormatter(formatter)
        # 给logger添加handler
        logger.addHandler(fh)
        logger.addHandler(ch)
    
        return logger
    
    if __name__=='__main__':
    	test_path = 'test'
    	logger = logger('./{}.log'.format(test_path))
    	logger.info("----------------日志输出----------------\n")
    
    • 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
    • 35

    说明:logging的日志级别一般有‘DEBUG’,‘INFO’,‘WARNING’,‘ERROR’, 'CRITICAL’几种,级别依次从低到高,DEBUG显示的信息最为详细,ERROR则只显示报错信息,上面代码中logging.getLogger()的优先级最高,logging.FileHandler(), logging.StreamHandler()的优先级次之。

  • 相关阅读:
    数据结构--排序
    常用Linux内核调试手段介绍 03——— 内核笔记
    卡尔曼滤波器的推导
    【AIGC】如何在使用stable-diffusion-webui生成图片时看到完整请求参数
    C++学习——vector类的使用
    Python异步编程并发执行爬虫任务,用回调函数解析响应
    2022-03-05-Dubbo
    高防服务器如何抵御大规模攻击
    为什么 Python、Go 和 Rust 都不支持三元运算符?
    iterator 迭代器
  • 原文地址:https://blog.csdn.net/scp_6453/article/details/126218810