zoukankan      html  css  js  c++  java
  • python全栈脱产第18天------包的使用和logging模块

    一、包的使用

      注意:在python2中,包必须要有一个__init__.py文件,而python3中即使是没有也不会报错

      首次导入包:1.以包下的__init__.py文件为基准产生一个名称空间

            2.执行包下的__init__.py文件的代码,将执行过程中产生的名字都丢到名称空间

            3.在当前执行文件中拿到一个名字,该名字就是指向__init__.py名称空间

      总结包使用的注意点:1.但凡是在导入语句中带点的,点的左边都必须是一个包

                2.导入包就是导包下的__init__.py文件

                3.如果使用绝对导入,绝对导入的起始位置都是以包的顶级目录为起始点

                4.但是包内部模块的导入通常应该使用相对导入,用.代表当前所在文件,..代表上一级

                强调:1.相对导入只能在包内部的模块之间互相导入使用

                   2...上一级不能超出顶级包

    二、logging模块

      1.控制日志级别

      2.控制日志格式

      3.控制输入的目标为文件

      logging.basicConfig(filename='access.log',
    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level=10,
    )
      4.日志的级别:1.logging.debug()  2.logging.info()  3.logging.warning()  4.logging.error()  5.logging.critical()
      优点:1.能够同时往终端与文件中记录日记  2.能够修改字符串编码
      5.logger对象:负责生产各种级别的日志  logger1=logging.getLogger('用户交易')
      6.fileter对象:过滤文件  
      7.handler对象:控制日志输出目标位置  fh1=logging.FileHandler('a1.log',encoding='utf-8')  ch=logging.StreamHandler()
      8.formmater对象  formatter1=logging.Formatter(fmt='%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s',datefmt='%Y-%m-%d %H:%M:%S %p')
      9.绑定logger对象与handler对象  logger1.addHandler(fh1)
      10.绑定handler对象与formatter对象  fh1.setFormatter(formatter1)
      11.设置日志级别,有logger对象与handler对象两层关卡,必须都放行最终日志才会放行,通常两者级别相同  logger1.setLevel(10)
      12.使用logger对象产生日志  logger1.info('alex给egon转账1亿')
  • 相关阅读:
    falsh developer 快捷键
    FlashDevelop安装配置
    EditPlus保存时不生成bak文件(转)
    微信oauth2验证
    通过TortoiseSVN checkout的文件前面没有“状态标识”
    CSS3 Media Query 响应式媒体查询
    回车事件、键盘事件
    shiro登录密码加密
    mybatis常用类起别名
    shiro(四)项目开发中的配置、
  • 原文地址:https://www.cnblogs.com/zhouyi0316/p/9457130.html
Copyright © 2011-2022 走看看