Python學習_日誌模組:logging

來源:互聯網
上載者:User

標籤:logs   href   error   att   mes   層級   python學習   位置   添加   

  一、logging模組
作用:在邏輯容易出錯位置手動添加日誌功能,記錄報錯資訊到檔案,以被排錯
特點:非自動記錄,為人工指定位置,指定報錯資訊內容
提供五種模式:debug < info < warning < error < critical
預設從warning開始輸出,可以根據需求
調整預設寫入檔案是追加a模式

二、logging模組的兩種操作模式
  • 第一種方式是使用logging提供的模組層級別的函數(low版,不可個人化)

  • 第二種方式是使用Logging日誌系統的四大組件,對象的模式操作(高大上版,高耦合性,個性無極限) 

 1 # 第一種、普通日誌記錄,不能同時列印及寫入日誌 2 impot logging 3 logging.basicConfig(level=logging.DEBUG, 4                     format=‘%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s‘, 5                     filename=‘log2018.log‘)  # 配置了檔案名稱就寫入檔案 6 logging.debug(‘message‘) 7 logging.info(‘message‘) 8 logging.warning(‘message‘) 9 logging.error(‘message‘)10 logging.critical(‘message‘)11 logging.log(logging.ERROR, ‘this is a error test‘)12 # 自訂層級及資訊:logging.log(level,mes)

 

 1 # 第二種、自訂配置日誌 2 # 同時列印到控制台及寫入檔案(分別建立fileHandler和streamHandler) 3 # 自訂將日誌內容按記錄層級分割成多個檔案寫入(建立多個檔案handler) 4 # 自訂同時寫入檔案格式,內容,列印格式的格式和內容 (為各個handler建立不同的formatter格式化) 5 # 自訂每個檔案、列印到螢幕的記錄層級(為各個handler設定不同的logging.setLevel(***)) 6 流程如下: 7 1、建立logger對象     logging.getLogger() 8 2、指定logger記錄層級 logging.setLevel() 9 3、建立handler        logging.FileHandler()10 4、指定handler的記錄層級(必須高於logger層級)  handler.setLevel()11 5、建立handler的日誌格式    custom_format = logging.Formatter()12 6、指定handler的日誌格式    handler.setFormatter(custom_format)13 7、日誌器logger調用handler處理器    obj.addHandler(handler)14 8、配置各個記錄層級的日誌記錄message  longging.debug(msg)15 16 ‘‘‘17 import logging18 # 1、通過日誌器logger執行個體化對象,調用方法getLogger()19 log_obj = logging.getLogger(__name__)20 21 # 2、設定日誌器logger即全域記錄層級(可省略,預設從warning開始,如要設定必須高於其層級即INFO開始)22 log_obj.setLevel(logging.INFO)23 24 # 3、建立各個需求的Handler控制代碼(本例設定三個,一個寫入error錯誤資訊的檔案,一個寫入全部日誌的檔案,一個列印到控制台)25 error_fh = logging.FileHandler(‘err.log‘, ‘a‘, encoding=‘UTF-8‘)  # 預設追加,encoding按當前預設編碼26 all_fh = logging.FileHandler(‘all.log‘)27 stream_sh = logging.StreamHandler()      # 列印出來沒有指定目的地一說28 29 # 4、為每個handler控制代碼配置日誌記錄層級(如果不設定預設繼承日誌器logger的記錄層級)30 error_fh.setLevel(logging.ERROR)31 all_fh.setLevel(logging.WARNING)32 stream_sh.setLevel(logging.WARNING)33 34 # 5、為每個handler控制代碼配置日誌格式(可以配置一個,其他都用一個,也可以各個配置)35 err_format = logging.Formatter(‘%(asctime)s-%(filename)s-[line:%(lineno)d]-%(levelname)s-%(message)s‘)36 stream_format = logging.Formatter(‘%(asctime)s-[line:%(lineno)d]-%(levelname)s-%(message)s‘)37 38 # 6、為每個handler控制代碼配置日誌格式39 error_fh.setFormatter(err_format)40 all_fh.setFormatter(err_format)41 stream_sh.setFormatter(stream_format)42 43 # 7、日誌器logger調用處理器handler,相結合44 log_obj.addHandler(error_fh)45 log_obj.addHandler(all_fh)46 log_obj.addHandler(stream_sh)47 48 # 8、為各個記錄層級設定日誌資訊49 logging.debug(‘debug:message2018‘)50 logging.info(‘info:message2019‘)51 logging.warning(‘waring:message2020‘)52 logging.error(‘error:message2088‘)53 logging.critical(‘critical:message2099‘)

 

 想瞭解詳細見:https://www.cnblogs.com/sunxiuwen/articles/9285938.html

Python學習_日誌模組:logging

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.