zoukankan      html  css  js  c++  java
  • day18

    今日内容:

      1、包的概念与应用

      2、logging模块

    包:

      包就是一个包含有__init__.py文件的文件夹

      包本质就是一种模块,即包使用包导入使用的,报内部包含的文件也都是用来被导入使用

      为何要用包?

      包使文件夹,那文件夹就是用来组织文件的

      定义了包之后里面常用相对调用,因为绝对调用不够灵活。

      在包内调用不能出包,否则出错。

    logging模块

      用于写日志,可以将日志打印在控制器上,也可以将日志存入文件

      logging的级别

      logging.debug(调试debug)

      logging.info(消息info)

      logging.waring(警告warn)

      logging.error(错误)

      logging.critical(严重critical)

      filename:用制定的文件名创建FiledHandler,这样日志会被存在文件中

      filemode:文件打开方式,在制定了filename时使用这个参数,默认值为‘a’还可指定为‘w’

      format:指定handler使用的日志显示格式。

      datefmt:指定日期时间格式

      level:设置rootlogger的日志级别

      stream:用制定的stream创建streamHandler.可以指定输出到sysy.stderr,sys.stdout或者文件,默认为sys.stderr.

    若同时列出了filename和stream两个参数,则stream参数会被忽略。

    ################################################################

    logger1 = logging.getLogger('用户交易:')

    f1 = logging.FileHandler('a1.log',encoding='utf-8')
    f2 = logging.FileHandler('a2.log',encoding='utf-8')
    ch = logging.StreamHandler()

    format1 = logging.Formatter(
    fmt='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p')

    format2 = logging.Formatter(fmt='%(asctime)s - %(levelname)s : %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p')

    logger1.addHandler(f1)
    logger1.addHandler(f2)
    logger1.addHandler(ch)

    f1.setFormatter(format1)
    f2.setFormatter(format1)
    ch.setFormatter(format2)

    logger1.setLevel(10)
    f1.setLevel(10)
    f2.setLevel(10)
    ch.setLevel(10)

    logger1.info('death death death death')
    ####################################################################






    ################################################################
    """
    MyLogging Test
    """
    import time
    import logging
    import my_logging  # 导入自定义的logging配置
    logger = logging.getLogger(__name__)  # 生成logger实例

    def demo():
        logger.debug("start range... time:{}".format(time.time()))
        logger.info("中文测试开始。。。")
        for i in range(10):
            logger.debug("i:{}".format(i))
            time.sleep(0.2)
        else:
            logger.debug("over range... time:{}".format(time.time()))
        logger.info("中文测试结束。。。")
    if __name__ == "__main__":
        my_logging.load_my_logging_cfg()  # 在你程序文件的入口加载自定义logging配置
        demo()
    ###################################################################
  • 相关阅读:
    摄影/秋日花展(二)
    cordova android
    Java Web Services (2)
    7、索引
    洛谷——P1164 小A点菜
    洛谷——P1616 疯狂的采药
    洛谷——P1910 L国的战斗之间谍
    洛谷——P1095 守望者的逃离
    codevs——T1169 传纸条
    计算机硬件历史
  • 原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9456246.html
Copyright © 2011-2022 走看看