今日所學:python
logging模塊函數
操做日誌的模塊
日誌:平常的流水,將程序運行過程當中的狀態或數據進行記錄,通常都是記錄到日誌文件中
在正常的項目中,項目運行的一些打印信息,採用looging打印到文件中,這個過程就稱之爲 記錄日誌測試
可在logging.basicConfig()函數中經過具體參數來更改logging模塊默認行爲,可用參數有
filename:用指定的文件名建立FiledHandler(後邊會具體講解handler的概念),這樣日誌會被存儲在指定的文件中。
filemode:文件打開方式,在指定了filename時使用這個參數,默認值爲「a」還可指定爲「w」。
format:指定handler使用的日誌顯示格式。
datefmt:指定日期時間格式。
level:設置rootlogger(後邊會講解具體概念)的日誌級別優化
日誌就是記錄平常流水,即日誌文件程序運行過程中的數據,優化程序,跟好的服務用戶導入模塊 import logging 輸出日誌 logging.info('info') # 常規信息 20 logging.debug("debug") # 調試信息 10logging.warning("warning") # 警告信息 30logging.error("error") # 錯誤信息 40 logging.critical("critical") # 嚴重錯誤 50 fatal同樣 用數字來表示級別,數字越大級別越高 默認級別爲warning,對應數字爲30 五種打印級別信息,級別自己沒有表明信息重要性,只表示它打印的給它附屬的,沒有實際意義 1,日誌被打印到控制檯 2,日誌輸出的格式爲級別 3,日誌生成器名稱,日誌消息 日誌的配置: loggin 四大成員 logging .basicConfig() 函數中經過具體參數來更改logging模塊默認行爲,可用參數有1 新建打印者 logger=logging.getLogger('owen') 生成器 loggin.getLogger('日誌對象1') #logger:產生日誌的對象2, 建立句柄:輸出的位置 logger.critical('msg')ster_hand = logging.StreamHandler() 控制檯句柄 用一個名字接受控制檯句柄Handler:接收日誌而後控制打印到不一樣的地方,FileHandler用來打印到文件中,StreamHandler用來打印到終端a_file_hand = logging.FileHandler('a.log') 文件句柄 若是有中文 handler1 = logging.FileHandler("文件名1",encoding="utf-8") b_file_hand = logging.FileHandler('b.log') 文件句柄 若是有中文 handler1 = logging.FileHandler("文件名2",encoding="utf-8") 3.打印者綁定句柄logger.addHandler(ster_hand ) 綁定生成器logger.addHandler(a_file_hand) 綁定文件句柄logger.addHandler(b_file_hand) 綁定文件句柄設置格式fmt1 = logging.Formatter('%(asctime)s-%(msg)s') Formatter對象:能夠定製不一樣的日誌格式對象,而後綁定給不一樣的Handler對象使用,以此來控制不一樣的Handler的日誌格式fmt2 = logging.Formatter('%(asctime)s [%(name)s]-%(msg)s') 爲句柄綁定輸出格式ster_hand.setFormatter(fmt1) 綁定格式化對象a_file_hand.setFormatter(fmt1) 綁定格文件句柄b_file_hand.setFormatter(fmt2) 綁定文件句柄 logger.critical('msg') 測試 及輸出日誌logging.info('info') 常規信息 20 logging.debug("debug") 調試信息 10 logging.warning("warning") 警告信息 30 logging.error("error") 錯誤信息 40 logging.critical("critical") 1.配置LOGGING_DIC = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'o_fmt1': { 'format': '%(name)s:%(asctime)s - %(message)s' }, 'o_fmt2': { 'format': '%(name)s:%(asctime)s [%(levelname)s] - %(message)s' } }, 'filters': {}, 'handlers': { 'o_cmd': { 'level': 'DEBUG', 控制檯級別 'class': 'logging.StreamHandler', 控制檯句柄 'formatter': 'o_fmt1' 控制檯格式 }, 'o_file': { 'level': 'WARNING', 文件中級別 'class': 'logging.handlers.RotatingFileHandler', 文件最多存的字節數 'formatter': 'o_fmt2', 文件格式 'filename': r'F:\python8期\課堂內容\day20\代碼\part4\logging.log', 日誌文件 路徑 'maxBytes': 1024*1024*5, 日誌大小 5M 'backupCount': 5, 日誌文件最大個數 'encoding': 'utf-8', 日誌文件的編碼 } }, 'loggers': { 'o_owen': { 'level': 'DEBUG', 級別 'handlers': ['o_cmd', 'o_file'] }, 'o_zero': { 'level': 'DEBUG', 'handlers': ['o_file'] } }}2.加載配置import logging.configlogging.config.dictConfig(LOGGING_DIC) 3.使用log = logging.getLogger('o_owen')log.warning('123')