• 日志


    日志

      1.导入logging模块

      2.简单配置一下logging

      3.出现异常的时候(except),向日志内写入错误信息

       

    import logging
    # filename:文件名
    # format:数据的格式化输出,最终写在日志文件的样子
    #         时间-名称-级别-模块:错误信息
    # datefmt:时间格式
    # level:错误的级别权重,当错误的权重大于等于level的时候才会被写入
    
    logging.basicConfig(filename = "hehe",
                        format="%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s",
                        datefmt="%Y-%m-%d %H:%M:%S",
                        level = 10)   # 当前配置表示 级别权重 大于等于10就会写入日志文件
    
    logging.critical("我是级别权重50")
    logging.error("我是级别权重40")
    logging.warning("我是警告,级别权重30")
    logging.info("我是基本信息,级别权重20")
    logging.debug("我是测试,级别权重10")
    logging.log(23,"我是自定义")

      简单做个测试

    import logging
    import traceback
    logging.basicConfig(filename = "hehe",
                        format="%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s",
                        datefmt="%Y-%m-%d %H:%M:%S",
                        level = 10)   # 当前配置表示 级别权重 大于等于10就会写入日志文件
    
    class JackError(Exception):
        pass
    for i in range(10):
        try:
            if i % 3 == 0:
                raise FileNotFoundError("文件不存在")
            elif i % 3 == 1:
                raise KeyError("key错了")
            elif i % 3 == 2:
                raise JackError("JackException")
        except FileNotFoundError:
            val = traceback.format_exc()
            logging.error(val)
        except KeyError:
            val = traceback.format_exc()
            logging.error(val)
        except JackError:
            val = traceback.format_exc()
            logging.error(val)
        except Exception:
            val = traceback.format_exc()
            logging.error(val)

      最后,如果你的系统中要把日志分开,比如,一个大项目,有两个子系统,那这两个子系统要分开

    记录日志,方便调用,那怎么办呢?注意,用上面的 basicConfig 是搞不定的,我们要借助文件助手

    (fileHandler),来帮助我们完成日志的分开记录   

    import logging
    # 创建一个操作日志的对象logger(依赖FileHandler)
    
    file_handler = logging.FileHandler("hehe","a",encoding = "utf-8")
    file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %"
                                                    "(levelname)s - %(module)s:%(message)s"))
    logger1 = logging.Logger("目标名称",level = logging.ERROR)
    logger1.addHandler(file_handler)
    logger1.error("我是A系统")
    
    # 再创建一个操作日志的对象logging(依赖FileHandler)
    file_handler = logging.FileHandler("hehe","a",encoding = "utf-8")
    file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %"
                                                    "(levelname)s - %(module)s:%(message)s"))
    logger2 = logging.Logger("目标名称2",level= logging.ERROR)
    logger2.addHandler(file_handler)
    logger2.error("我是B系统")
  • 相关阅读:
    上下文管理器
    创建项目与介绍(2)
    虚拟环境的安装(1)
    爬虫-selenium(14-2)扩展
    爬虫10-1(协程)
    Python3笔记038
    Python3笔记037
    Python3笔记036
    Python3笔记035
    Python3笔记034
  • 原文地址:https://www.cnblogs.com/wenqi2121/p/10392949.html
Copyright © 2020-2023  润新知