入門loging python 模組 看了就能用

2021-10-10 22:40:40 字數 3629 閱讀 9706

主要分為4個框架:

loggers:記錄器,可**用程式直接呼叫的介面

handlers:處理器,將(記錄器產生的)日誌記錄分配至正確的目的地(預設為標準輸出)

filters:過濾器,提供了更好的粒度控制,決定輸出那些日誌記錄

formatters:格式化器,格式化最終列印日誌記錄的格式或布局

下面做一詳細介紹:

1.1 logger記錄器

logger是乙個樹形層級結構

建立方法:logger = logging.getlogger(logger_name)

1.2 handler 處理器

handler處理器型別有很多種,比較常用的有三個(詳情可以訪問python logging.handlers),

ch.setlevel(logging.warn) # 指定日誌級別,低於warn級別的日誌將被忽略

ch.setformatter(formatter_name) # 設定乙個格式化器formatter

ch.addfilter(filter_name) # 增加乙個過濾器,可以增加多個

ch.removefilter(filter_name) # 刪除乙個過濾器

主要分為5個級別:

debug:詳細的資訊,通常只出現在診斷問題上

info:確認一切按預期執行

warning:一些意想不到的事情發生了,或表明一些問題在不久的將來會出現(例如:磁碟空間低)。這個軟體還能按預期工作。

error:更嚴重的問題,軟體沒能執行一些功能

critical:乙個嚴重的錯誤,這表明程式本身可能無法繼續執行

3.1 示例1
# -*- coding:utf-8 -*-

import logging

logging.basicconfig(filename=

'logfile.log'

,format

='[%(asctime)s-%(filename)s-%(levelname)s:%(message)s]'

, level = logging.debug,

filemode=

'a',

datefmt=

'%y-%m-%d %i:%m:%s %p'

)def

logtest()

: logging.error(

"這是一條error資訊的列印"

) logging.info(

"這是一條info資訊的列印"

) logging.warning(

"這是一條warn資訊的列印"

) logging.debug(

"這是一條debug資訊的列印"

)if __name__ ==

'__main__'

: logtest(

)

3.2 示例2

# -*- coding:utf-8 -*-

import logging

# 第一步,建立乙個logger

logger = logging.getlogger(

)logger.setlevel(logging.info)

# log等級總開關

# 第二步,建立乙個handler,用於寫入日誌檔案

logfile =

'./log.txt'

fh = logging.filehandler(logfile, mode=

'a')

# open的開啟模式這裡可以進行參考

fh.setlevel(logging.debug)

# 輸出到file的log等級的開關

# 建立乙個handler,用於輸出到控制台

ch = logging.streamhandler(

)ch.setlevel(logging.warning)

# 輸出到console的log等級的開關

# 第三步,定義handler的輸出格式

formatter = logging.formatter(

"%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s"

)fh.setformatter(formatter)

ch.setformatter(formatter)

# 第四步,將logger新增到handler裡面

logger.addhandler(fh)

logger.addhandler(ch)

# 日誌

logger.debug(

'這是 logger debug message'

)logger.info(

'這是 logger info message'

)logger.warning(

'這是 logger warning message'

)logger.error(

'這是 logger error message'

)logger.critical(

'這是 logger critical message'

)

3.3 日誌格式說明
函式:logging.basicconfig(

**kwargs)

引數名稱

描述filename

指定日誌輸出目標檔案的檔名,指定該設定項後日誌資訊將寫入到指定檔案,不會被輸出到控制台

filemode

指定日誌檔案的開啟模式,預設為』a』。需要注意的是,該選項要在filename指定時才有效

format

指定日誌格式字串(其實就是每一行的開頭資訊,每一行的後續資訊將由後續的logging.info等指定內容填充),即指定日誌輸出時所包含的字段資訊以及它們的順序(參考文末內容)

datefmt

指定日期/時間格式。需要注意的是,該選項要在format中包含時間欄位%(asctime)s時才有效

level

指定日誌器的日誌級別,大於等於該級別的將會被輸出

stream

指定日誌輸出目標stream,如sys.stdout、sys.stderr以及網路stream。需要說明的是,stream和filename不能同時提供,否則會引發 valueerror異常

style

python 3.2中新新增的配置項。指定format格式字串的風格,可取值為』%』、』{『和』$』,預設為』%』

handlers

python 3.3中新新增的配置項。該選項如果被指定,它應該是乙個建立了多個handler的可迭代物件,這些handler將會被新增到root logger。需要說明的是:filename、stream和handlers這三個配置項只能有乙個存在,不能同時出現2個或3個,否則會引發valueerror異常。

tensorflow入門 1 構造線性回歸模型

今天讓我們一起來學習如何用tf實現線性回歸模型。所謂線性回歸模型就是y w x b的形式的表示式擬合的模型。我們先假設一條直線為 y 0.1x 0.3,即w 0.1,b 0.3,然後利用隨機數在這條直線附近產生1000個隨機點,然後利用tensorflow構造的線性模型去學習,最後對比模型所得的w和...

共模差模阻抗

特性阻抗 差分阻抗含義 特性阻抗 是根據輸入阻抗計算的出的平均值。輸入阻抗 是線纜實際量測的阻抗值。差分阻抗 發射訊號可正負交替又稱為平衡阻抗。共模阻抗 導體走正編織或地線走負的訊號。目前用於同軸線或帶地線的cable。又稱不平衡阻抗。特性阻抗 假設一根均勻電纜無限延伸,在發射端的在某一頻率下的阻抗...

in amp 共模差模濾波

首先,確定兩蘋串聯電阻器的阻值,同時保證前面的電路可充分地驅動這個阻抗。這兩蘋電阻器的典型值在2k 和10k 之間,這兩蘋電阻器產生的雜訊不應當大於該儀表放大器本身的雜訊。採用一對2k 電阻器,詹森雜訊會增加 8nv hz1 2 採用4k 電阻器,會增加11nv hz1 2 採用10k 電阻器,會增...