• Python 之logging


    参考:

    1.视频:https://www.youtube.com/watch?v=dvtjV4Xmtj0

    2. https://cuiqingcai.com/6080.html

    3.https://rgb-24bit.github.io/blog/2018/python-logging.html#org7bce4f7

    1.简单用法,不能同时输出到屏幕加文件。 可以用logging.basicConfig()配置。

    # Demo https://rgb-24bit.github.io/blog/2018/python-logging.html
    logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    logging.warning('This will get logged')

    在这里我们首先引入了 logging 模块,然后进行了一下基本的配置,这里通过 basicConfig 配置了 level 信息和 format 信息,这里 level 配置为 INFO 信息,即只输出 INFO 级别的信息,

    另外这里指定了 format 格式的字符串,包括 asctime、name、levelname、message 四个内容,分别代表运行时间、模块名称、日志级别、日志内容,这样输出内容便是这四者组合而成的内容了,这就是 logging 的全局配置

    2.1 若要同时输出到屏幕加文件。需要用handler 处理

    import os
    import logging

    logger = logging.getLogger() # create instance 对象实例

    fh = logging.FileHandler('logging_test.log')
    ch = logging.StreamHandler()


    fm=logging.Formatter("%(asctime)s %(message)s")

    fh.setFormatter(fm)
    ch.setFormatter(fm)

    logger.addHandler(fh)
    logger.addHandler(ch)

    logger.setLevel("DEBUG")  # 默认为warning, 打印3行

    logger =logger()
    logger.debug('debug')
    logger.info("info")
    logger.warning("warning")
    logger.error("error")
    logger.critical("critical")

    2.2. 基本用法如2.1.

    一般可以封装为一个函数,返回logger ,直接调用。

    import os
    import logging
    
    '''
    # Demo https://rgb-24bit.github.io/blog/2018/python-logging.html
    logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    logging.warning('This will get logged')
    '''
    
    def logger():
        
        logger = logging.getLogger() # create  instance
    
        fh = logging.FileHandler('logging_test.log')
        ch = logging.StreamHandler()
    
    
        fm=logging.Formatter("%(asctime)s %(message)s")
    
        fh.setFormatter(fm)
        ch.setFormatter(fm)
    
        logger.addHandler(fh)
        logger.addHandler(ch)
    
        logger.setLevel("DEBUG")
    
        return logger
    
    logger =logger()
    logger.debug('debug')
    logger.info("info")
    logger.warning("warning")
    logger.error("error")
    logger.critical("critical")

    3. Log 是树形关系,子log. 避免才坑,参考视频:

    参考视频:https://www.youtube.com/watch?v=dvtjV4Xmtj0  

  • 相关阅读:
    JavaScript之MV*模式
    JavaScript之命名空间模式 浅析
    设计模式漫谈
    JavaScript之作用域与闭包详解
    JavaScript数据检测
    Code Conventions for the JavaScript Programming Language
    Javascript之对象的继承
    多线程,进程,协程用法
    scrapy_redis 实现多进程配置部分代码
    自己设计代理IP池
  • 原文地址:https://www.cnblogs.com/ASAP/p/11066779.html
Copyright © 2020-2023  润新知