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()
    ###################################################################
  • 相关阅读:
    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(8月20日8月26日)
    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日9月30日)
    获取免费Windows Store开发者账户方法
    QOCIDriver: unable to create environment Unable to free Error handle: 2 Unable to free Environment
    C:\workdir\dbManager\lib>c:\Qt\Qt5.9.9\5.9.9\mingw53_32\bin\windeployqt.exe ./db ManagerDll.dll
    QT5.9.932 oracle1032 驱动编译
    sqlplus
    c++const成员函数*
    C++ 函数内静态静态变量
    c++构造/拷贝构造函数初始化变量*
  • 原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9456246.html
Copyright © 2011-2022 走看看