python全棧脫產第18天------包的使用和logging模塊

1、包的使用python

  注意:在python2中,包必需要有一個__init__.py文件,而python3中即便是沒有也不會報錯編碼

  首次導入包:1.以包下的__init__.py文件爲基準產生一個名稱空間debug

        2.執行包下的__init__.py文件的代碼,將執行過程當中產生的名字都丟到名稱空間日誌

        3.在當前執行文件中拿到一個名字,該名字就是指向__init__.py名稱空間orm

  總結包使用的注意點:1.但凡是在導入語句中帶點的,點的左邊都必須是一個包對象

            2.導入包就是導包下的__init__.py文件utf-8

            3.若是使用絕對導入,絕對導入的起始位置都是以包的頂級目錄爲起始點字符串

            4.可是包內部模塊的導入一般應該使用相對導入,用.表明當前所在文件,..表明上一級get

            強調:1.相對導入只能在包內部的模塊之間互相導入使用it

               2...上一級不能超出頂級包

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億')
相關文章
相關標籤/搜索