亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

Python打印詳細(xì)報錯日志,獲取報錯信息位置行數(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())

結(jié)果為:

在這里插入圖片描述

網(wǎng)上代碼2

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

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

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

python中配置logging有三種方式

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

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

使用代碼logging的代碼來說明

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

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")
# 設(shè)置日志輸出等級
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)
# 設(shè)置日志的輸出格式
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")

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • 一篇文章學(xué)會兩種將python打包成exe的方式

    一篇文章學(xué)會兩種將python打包成exe的方式

    最近有部分小伙伴問我,python 寫的項目可不可以打包成exe程序,放到?jīng)]有python環(huán)境上的電腦中執(zhí)行? 答案當(dāng)然是可以的,下面這篇文章主要給大家介紹了如何通過一篇文章學(xué)會兩種將pyton打包成exe的方式,需要的朋友可以參考下
    2021-11-11
  • Python編程實現(xiàn)粒子群算法(PSO)詳解

    Python編程實現(xiàn)粒子群算法(PSO)詳解

    這篇文章主要介紹了Python編程實現(xiàn)粒子群算法(PSO)詳解,涉及粒子群算法的原理,過程,以及實現(xiàn)代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • transform python環(huán)境快速配置方法

    transform python環(huán)境快速配置方法

    經(jīng)常在數(shù)據(jù)開發(fā)中需要搞udf,最近發(fā)現(xiàn)transform更加方便易用,但是經(jīng)常會涉及到集群python版本不一、包不全或者部分機(jī)器上沒有安裝python。這篇文章主要介紹了transform python環(huán)境快速配置方法,需要的朋友可以參考下
    2018-09-09
  • pip matplotlib報錯equired packages can not be built解決

    pip matplotlib報錯equired packages can not be built解決

    這篇文章主要介紹了pip matplotlib報錯equired packages can not be built解決,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python修改和新增字典中鍵值對的2種方法

    python修改和新增字典中鍵值對的2種方法

    這篇文章主要給大家介紹了關(guān)于python修改和新增字典中鍵值對的2種方法,在Python中字典是一系列鍵值對,每個鍵都與一個值相關(guān)聯(lián),與鍵相關(guān)聯(lián)的值可以是數(shù)、字符串、列表乃至字典,需要的朋友可以參考下
    2023-07-07
  • Python3中詳解fabfile的編寫

    Python3中詳解fabfile的編寫

    這篇文章給大家分享了Python3中詳解fabfile的編寫的相關(guān)知識點以及重要內(nèi)容,有興趣的朋友跟著學(xué)習(xí)下。
    2018-06-06
  • python getopt模塊使用實例解析

    python getopt模塊使用實例解析

    這篇文章主要介紹了python getopt模塊使用實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python可視化工具Plotly的應(yīng)用教程

    Python可視化工具Plotly的應(yīng)用教程

    對于Python語言來說,比較傳統(tǒng)的數(shù)據(jù)可視化模塊是Matplotlib,但它存在不夠美觀、靜態(tài)性、不易分享等缺點,限制了Python在數(shù)據(jù)可視化方面的發(fā)展。為了解決這個問題,新型的動態(tài)可視化開源模塊Plotly應(yīng)運而生。本文將為大家詳細(xì)介紹Plotly的用法,需要的可以參考一下
    2021-12-12
  • Python使用當(dāng)前時間、隨機(jī)數(shù)產(chǎn)生一個唯一數(shù)字的方法

    Python使用當(dāng)前時間、隨機(jī)數(shù)產(chǎn)生一個唯一數(shù)字的方法

    這篇文章主要介紹了Python使用當(dāng)前時間、隨機(jī)數(shù)產(chǎn)生一個唯一數(shù)字的方法,涉及Python時間與隨機(jī)數(shù)相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • python3 xpath和requests應(yīng)用詳解

    python3 xpath和requests應(yīng)用詳解

    這篇文章主要介紹了python3 xpath和requests應(yīng)用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評論