最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)打印詳細報錯日志,獲取報錯信息位置行數(shù)

 更新時間:2023年08月11日 08:42:18   作者:北木.  
這篇文章主要介紹了Python實現(xiàn)打印詳細報錯日志,獲取報錯信息位置行數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Python打印詳細報錯日志,獲取報錯信息位置行數(shù)

源于: 功能類代碼 – Logsetclass.py

網(wǎng)上代碼1

# 日志模塊
import logging
import traceback
# 引入日志
logging.basicConfig(filename='log_record.txt',
    level=logging.DEBUG, filemode='w', format='[%(asctime)s] [%(levelname)s] >>>  %(message)s',
                    datefmt='%Y-%m-%d %I:%M:%S')
try:
	print(a+1)   # 放主要代碼
except Exception as e:
    logging.error("Main program error:")
    logging.error(e)
    logging.error(traceback.format_exc())

結果為:

在這里插入圖片描述

網(wǎng)上代碼2

  • logging模塊可以實現(xiàn)Python程序的錯誤日志功能。
  • 通過使用baseConfig()函數(shù)就可以對logging進行一個日志配置。
  • 包括輸出的格式和錯誤等級,記錄的文件目錄

使用 Python logging 模塊能很好的幫我們完成程序的錯誤日志功能。

  • 像其它的語言那樣, python 里的 logging 信息同樣也是分為5個等級,從低到高依次是: DEBUG,INFO,WARNING,ERROR,CRITICAL
  • python中, logging logger,handler,filter,formater 四個部分組成,logger是提供我們記錄日志的方法;handler是讓我們選擇日志的輸出地方,如:控制臺,文件,郵件發(fā)送等,一個 logger 添加多個 handler ;filter是給用戶提供更加細粒度的控制日志的輸出內(nèi)容;formater用戶格式化輸出日志的信息。
  • logger的級別劃分,python中, root是默認的最高級別的,其它的logger的級別通過"."來劃分等級,如:bao,bao.a,bao.b三個logger,bao.a和bao.b都的級別都低于bao,依此類推。

python中配置logging有三種方式

  • 在程序中完成logger,handler,filter,formater的實例化 被配置好logging,然后再使用logging取得logger進行日志操作。
  • 使用配置文件的方式配置logging,使用 fileConfig(filename,defaults=None,disable_existing_loggers=Ture ) 函數(shù)來讀取配置文件。
  • 使用一個字典方式來寫配置信息,然后使用 dictConfig(dict,defaults=None,disable_existing_loggers=Ture) 函數(shù)來瓦按成logging 的配置 。(這個方式?jīng)]有仔細看,所以沒有怎么說,具體可以看文檔)

注意: 在使用第二種和三種方式配置logging的時候,第三個參數(shù)默認值是True,當它為True的時候,在這之前定義的logging配置就是失效,不能再使用,也就是只有配置文件或者配置字典里有的內(nèi)容才能使用。如果先讓之前的logging配置依然有限就要把這個參數(shù)設為False,或者一直就是使用配置文件或者配置字典的方式來對logging進行配置。

使用代碼logging的代碼來說明

使用baseConfig()函數(shù)對 logging進行 簡單的 配置:

import logging
logging.basicConfig(level=logging.INFO,
                    format='%(levelname)s %(asctime)s [%(filename)s:%(lineno)d] %(message)s',
                    datefmt='%Y.%m.%d. %H:%M:%S',
                    # filename='parser_result.log',
                    # filemode='w'
                    )
log = logging.getLogger(__name__)
if __name__ == '__main__':
     # 使用logger輸出日志信息
    log.info('this is a log')
    log.debug("debug")
    log.info("info")
    log.warning("warning")
    log.error("error")
    log.critical("critiacl")

在這里插入圖片描述

說明:

  • 使用baseConfig()函數(shù),可選參數(shù)有filename,filemode,format,datefmt,level,stream
  • 有filename是文件日志輸出,filemode是’w’的話,文件會被覆蓋之前生成的文件會被覆蓋。datafmt參數(shù)用于格式化日期的輸出

通過初始化logger,handler,formater來配置logging:

import logging
# logging模塊由logger,handler,filter,fomatter四個部分組成
# 獲取一個logger對象
logger = logging.getLogger("haha")
# 設置日志輸出等級
logger.setLevel(logging.DEBUG)
# 創(chuàng)建一個文件的handler
f_handler = logging.FileHandler("xxx.log")
f_handler.setLevel(logging.INFO)
# 創(chuàng)建一個控制臺的handler
c_handler = logging.StreamHandler()
c_handler.setLevel(logging.WARNING)
# 設置日志的輸出格式
fmt = logging.Formatter("%(asctime)s-%(name)s-%(levelname)s-%(message)s")
# 給handler綁定一個fomatter類
f_handler.setFormatter(fmt)
c_handler.setFormatter(fmt)
# 綁定一個handler
logger.addHandler(f_handler)
logger.addHandler(c_handler)
# 使用logger輸出日志信息
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critiacl")

在這里插入圖片描述

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python如何判斷IP地址合法性

    python如何判斷IP地址合法性

    這篇文章主要為大家詳細介紹了python如何判斷IP地址合法性,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • python 協(xié)程 gevent原理與用法分析

    python 協(xié)程 gevent原理與用法分析

    這篇文章主要介紹了python 協(xié)程 gevent原理與用法,結合實例形式分析了Python協(xié)程gevent相關概念、原理、安裝及使用操作技巧,需要的朋友可以參考下
    2019-11-11
  • 詳解Python 數(shù)據(jù)庫的Connection、Cursor兩大對象

    詳解Python 數(shù)據(jù)庫的Connection、Cursor兩大對象

    這篇文章主要介紹了Python 數(shù)據(jù)庫的Connection、Cursor兩大對象,文中通過python 數(shù)據(jù)庫圖解給大家介紹的非常詳細,需要的朋友參考下吧
    2018-06-06
  • Python全棧之學習JQuery

    Python全棧之學習JQuery

    這篇文章主要為大家介紹了Python全棧之JQuery,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 詳解Python中Sync與Async執(zhí)行速度快慢對比

    詳解Python中Sync與Async執(zhí)行速度快慢對比

    Python新的版本中支持了async/await語法, 很多文章都在說這種語法的實現(xiàn)代碼會變得很快, 但是這種快是有場景限制的。這篇文章將嘗試簡單的解釋為何Async的代碼在某些場景比Sync的代碼快
    2023-03-03
  • Jupyter?ipywidgets組件的使用及說明

    Jupyter?ipywidgets組件的使用及說明

    這篇文章主要介紹了Jupyter?ipywidgets組件的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python 2/3下處理cjk編碼的zip文件的方法

    Python 2/3下處理cjk編碼的zip文件的方法

    今天小編給大家分享Python 2/3下處理cjk編碼的zip文件的方法,在項目中經(jīng)常會遇到這樣的問題,小編特意分享到腳本之家平臺,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • TensorFlow命名空間和TensorBoard圖節(jié)點實例

    TensorFlow命名空間和TensorBoard圖節(jié)點實例

    今天小編就為大家分享一篇TensorFlow命名空間和TensorBoard圖節(jié)點實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 解決谷歌搜索技術文章時打不開網(wǎng)頁問題的python腳本

    解決谷歌搜索技術文章時打不開網(wǎng)頁問題的python腳本

    在用谷歌在搜索技術文章時,總是時不時的打不開網(wǎng)頁,于是寫了一個python腳本,感覺用著還行,分享給大家
    2013-02-02
  • Python多線程編程(七):使用Condition實現(xiàn)復雜同步

    Python多線程編程(七):使用Condition實現(xiàn)復雜同步

    這篇文章主要介紹了Python多線程編程(七):使用Condition實現(xiàn)復雜同步,本文講解通過很著名的“生產(chǎn)者-消費者”模型來來演示在Python中使用Condition實現(xiàn)復雜同步,需要的朋友可以參考下
    2015-04-04

最新評論

涿鹿县| 天柱县| 巴彦淖尔市| 千阳县| 肥城市| 南澳县| 桐柏县| 镇巴县| 洮南市| 平江县| 六枝特区| 彭泽县| 天峨县| 昂仁县| 句容市| 五莲县| 南漳县| 祁阳县| 昭平县| 通榆县| 东山县| 郎溪县| 建昌县| 大厂| 四子王旗| 延吉市| 香港 | 文水县| 安远县| 高要市| 南阳市| 沾化县| 航空| 阜新| 高要市| 青龙| 宜都市| 郓城县| 高邑县| 平塘县| 西乌|