python中異常後加和日誌

2021-08-20 05:42:10 字數 3750 閱讀 8071

自定義 異常類:

class ***excption(exception):

'''自定義性別 異常類

'''pass

try:

*** = input('請輸入性別:')

if ***!='男' and ***!='女':

raise ***excption('性別只能是男或女')#raise:丟擲異常

except ***excption as ex: #except:捕獲異常

print(ex)

except exception as ex:

print(ex)

finally:

print('程式結束..')

如圖:

日誌相關概念 用來記錄程式中 重要的訊息

日誌--》物件

日誌的作用:

1.程式除錯

2.了解軟體程式運**況是否正常

3.軟體程式執行故障分析與問題定位

最常用的:錯誤級別==>權重值    和描述:

debug = 10         :最詳細的日誌資訊,典型應用場景是 問題診斷

info = 20            :資訊詳細程度僅次於debug,通常只記錄關鍵節點資訊,用於確認一切都是按照我們預期的那樣進行工作

warning = 30   :當某些不期望的事情發生時記錄的資訊(如,磁碟可用空間較低),但是此時應用程式還是正常執行的

error =  40        :由於乙個更嚴重的問題導致某些功能不能正常執行時記錄的資訊

critical = 50      :當發生嚴重錯誤,導致應用程式不能繼續執行時記錄的資訊

上面列表中的日誌等級是從上到下依次公升高的,即:

debug < info < warning < error < critical,

而日誌的資訊量是依次減少的;

不常用:

alert

emergency

notice

配置級別:兩種寫法

一:import  logging

logging.debug('this is a debug')

logging.info('this is a info')

logging.warning('this is a warning')

logging.error('this is a error')

logging.critical('this is a critical')

如圖:

二:logging.log(logging.debug,'this is a debug')

logging.log(logging.info,'this is a info')

logging.log(logging.warning,'this is a warning')

logging.log(logging.error,'this is a error')

logging.log(logging.critical,'this is a critical')

如圖:

為什麼有兩條日誌沒有列印出來?

這是因為logging模組提供的日誌記錄函式所使用的日誌器設定的日誌級別是warning,

因此只有warning級別的日誌記錄以及大於它的error和critical級別的日誌記錄被輸出了,

而小於它的debug和info級別的日誌記錄被丟棄了。

以debug為衡量標準:

import  logging

logging.basicconfig(level=logging.debug)

#level:指定日誌級別

logging.log(logging.debug,'this is a debug')

logging.log(logging.info,'this is a info')

logging.log(logging.warning,'this is a warning')

logging.log(logging.error,'this is a error')

logging.log(logging.critical,'this is a critical')

如圖:

一條日誌資訊對應的是乙個事件的發生,而乙個事件通常需要包括以下幾個內容:

1.事件發生

時間2.事件發生

位置3.事件的嚴重程度--

日誌級別

4.事件

內容案例:

在乙個新的模組生成日誌和設定日誌格式:

import  logging

log_format = '%(asctime)s- %(levelname)s- %(message)s'

設定日誌的時間格式:

date_format = "%m/%d/%y %h:%m:%s %p"

logging.basicconfig(level=logging.debug,

filename='my.log',

format=log_format,

datefmt=date_format)

logging.debug('this is a debug')

#修改資料內容:

logging.debug('%s is %d year old',"tom",20) #%s:字元  %d:數字

logging.info('this is a info')

logging.warning('this is a warning')

logging.error('this is a error')

logging.critical('this is a critical')

如圖:

輸出結果:

引入乙個案例:

以utf-8格式是讀取不了的,改為gbk 格式

class ***excption(exception):

pass

try:

*** = input('請輸入性別:')

if ***!='男' and ***!='女':

raise ***excption('性別只能是男或女')

except ***excption as ex:

logging.debug(ex)

except exception as ex:

print(ex)

finally:

print('程式結束..')

如圖:

日誌錄入:

完畢!

Python 異常和日誌

一 異常 1 異常 異常通常可以看做是程式的錯誤,代表程式是有缺陷的。異常型別 異常 描述 baseexception 所有異常的基類 systemexit 直譯器請求退出 exception 常規錯誤的基類 stopiteration 迭代器沒有更多的值 generatorexit 生成器 gen...

python日誌和異常

異常 try except異常型別,捕獲異常 處理異常 也可以巢狀 除了。except exception as xx 未知錯誤。如果之前的都沒有,就抓所有 else 沒有錯誤 可以寫入多個except 捕獲異常 except 異常型別 as xx 具體的異常資訊物件 執行了乙個異常後不會繼續執行下...

python日誌和異常

日誌 異常 2.異常 try捕獲由python或程式本身引發的異常 raise 手工地引發乙個異常 為什麼要使用異常 錯誤處理,當python檢查以程式執行時的錯誤就引發異常,你可以在程式裡捕捉和處理這些錯誤,或者忽略它們。事件通知,異常也可以作為某種條件的訊號,而不需要在程式裡傳送結果標誌或顯式地...