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

Python中關(guān)于logging模塊的學(xué)習(xí)筆記

 更新時(shí)間:2020年06月03日 16:54:33   作者:愛(ài)喝馬黛茶的安東尼  
在本篇文章里小編給大家整理的是一篇關(guān)于Python中l(wèi)ogging模塊相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以參考下。

python的logging模塊

python提供了一個(gè)日志處理的模塊,那就是logging。

導(dǎo)入logging模塊使用以下命令:

import logging

logging模塊的用法:

1.簡(jiǎn)單的將日志打印到屏幕上

import logging
logging.debug("This is debug message")
logging.info("This is info message")
logging.warning("This is warning message")
logging.error("This is error message")
logging.critical("This is critical message")

會(huì)在屏幕上顯示出以下內(nèi)容:

WARNING:root:This is warning message

ERROR:root:This is error message

CRITICAL:root:This is critical message

默認(rèn)情況下python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,也就是屏幕上,且只顯示了大于等于WARNING級(jí)別的日志.

這說(shuō)明默認(rèn)的日志級(jí)別設(shè)置為WARNING(日志級(jí)別等級(jí)CRITICAL > ERROR > WARNING > INFO > DEBUG)

默認(rèn)直接輸出的日志格式為日志級(jí)別:Logger名稱(chēng):用戶(hù):輸出消息。

2.現(xiàn)在修改日志的默認(rèn)輸出級(jí)別為debug,重新設(shè)定輸出時(shí)間的格式,

import logging
logging.basicConfig(level=logging.DEBUG,
          format="%(asctime)s %(levelname)s %(message)s",
          datefmt="%Y-%m-%d %H:%M:%S")
logging.debug("This is debug message")
logging.info("This is info message")
logging.warning("This is warning message")
logging.error("This is error message")
logging.critical("This is critical message")

會(huì)在屏幕上顯示以下信息;

2017-07-02 10:41:18 DEBUG This is debug message

2017-07-02 10:41:18 INFO This is info message

2017-07-02 10:41:18 WARNING This is warning message

2017-07-02 10:41:18 ERROR This is error message

2017-07-02 10:41:18 CRITICAL This is critical message

3.現(xiàn)在想把程序產(chǎn)生的日志寫(xiě)入文件當(dāng)中,可以這樣設(shè)定:

import logging
logging.basicConfig(level=logging.DEBUG,
          format="%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s",
          datefmt="%Y-%m-%d %H:%M:%S",
          filename="log.txt",
          filemode="w")
logging.debug("This is debug message")
logging.info("This is info message")
logging.warning("This is warning message")
logging.error("This is error message")
logging.critical("This is critical message")

運(yùn)行程序,會(huì)在腳本目錄下生成一個(gè)名為log.txt的文件。

log.txt文件的內(nèi)容如下:

2017-07-02 10:49:13 logging_modules.py[line:211] DEBUG This is debug message

2017-07-02 10:49:13 logging_modules.py[line:212] INFO This is info message

2017-07-02 10:49:13 logging_modules.py[line:213] WARNING This is warning message

2017-07-02 10:49:13 logging_modules.py[line:214] ERROR This is error message

2017-07-02 10:49:13 logging_modules.py[line:215] CRITICAL This is critical message

在這里設(shè)定日志文件的輸出使用的是basicConfig這個(gè)方法:

logging.basicConfig函數(shù)各參數(shù):
filename: 指定輸出日志的文件名
filemode: 和file函數(shù)意義相同,指定日志文件的打開(kāi)模式,寫(xiě)入模式用'w',追加模式使用'a'
format: 指定輸出的內(nèi)容的格式,其中可以使用的參數(shù)有:
   %(levelno)s: 指定輸出日志的級(jí)別的數(shù)值
   %(levelname)s: 指定輸出日志的級(jí)別的名稱(chēng)
   %(pathname)s: 指定當(dāng)前執(zhí)行程序的路徑,其實(shí)就是sys.argv[0]
   %(filename)s: 指定保存日志文件的名字
   %(funcName)s: 打印日志的當(dāng)前函數(shù)
   %(lineno)d: 打印日志的當(dāng)前行號(hào)
   %(asctime)s: 打印日志的時(shí)間
   %(thread)d: 打印線(xiàn)程ID
   %(threadName)s: 打印線(xiàn)程名稱(chēng)
   %(process)d: 打印進(jìn)程ID
   %(message)s: 打印日志信息
datefmt: 指定時(shí)間格式,同time.strftime()
level: 設(shè)置日志級(jí)別,默認(rèn)為logging.WARNING,這里設(shè)定為logging.DEBUG

4.既想現(xiàn)在就看到輸出的日志,又想把程序運(yùn)行的日志保存在文件里,方便以后查看,可以這樣設(shè)定:

import logging
logger=logging.getLogger()
#創(chuàng)建一個(gè)file_handle變量,用于把日志寫(xiě)入到文件
file_handle=logging.FileHandler("log1.txt")
#創(chuàng)建一個(gè)stream_handle變量,用于輸出日志到屏幕上
stream_handle=logging.StreamHandler()
#設(shè)定輸出日志的級(jí)別為debug級(jí)別
logger.setLevel(logging.DEBUG)
#設(shè)定輸出日志的格式
fmt=logging.Formatter("%(asctime)s-%(levelname)s-%(message)s")
#為寫(xiě)入文件的日志添加已設(shè)定的格式
file_handle.setFormatter(fmt)
#為輸出到屏幕的日志添加已設(shè)定的格式 
stream_handle.setFormatter(fmt)
logger.addHandler(file_handle)
logger.addHandler(stream_handle)
#設(shè)定輸出日志的信息
logging.debug("This is debug message")
logging.info("This is info message")
logging.warning("This is warning message")
logging.error("This is error message")
logging.critical("This is critical message")

運(yùn)行程序后,會(huì)生成一個(gè)名為log1.txt的文件,文件的內(nèi)容和屏幕上顯示的內(nèi)容都是:

2017-07-02 11:04:53,622-DEBUG-This is debug message

2017-07-02 11:04:53,623-INFO-This is info message

2017-07-02 11:04:53,623-WARNING-This is warning message

2017-07-02 11:04:53,623-ERROR-This is error message

2017-07-02 11:04:53,624-CRITICAL-This is critical message

在這里,還可以添加以下選項(xiàng)用來(lái)指定把要寫(xiě)入文件的日志設(shè)定為debug級(jí)別,而輸出到屏幕上的日志還是warning級(jí)別

fh.setLevel(logging.Debug)

內(nèi)容擴(kuò)展:

日志的作用

通過(guò)log的分析,可以方便用戶(hù)了解系統(tǒng)或軟件、應(yīng)用的運(yùn)行情況;如果你的應(yīng)用log足夠豐富,也可以分析以往用戶(hù)的操作行為、類(lèi)型喜好、地域分布或其他更多信息;如果一個(gè)應(yīng)用的log同時(shí)也分了多個(gè)級(jí)別,那么可以很輕易地分析得到該應(yīng)用的健康狀況,及時(shí)發(fā)現(xiàn)問(wèn)題并快速定位、解決問(wèn)題,補(bǔ)救損失。

簡(jiǎn)單來(lái)講就是,我們通過(guò)記錄和分析日志可以了解一個(gè)系統(tǒng)或軟件程序運(yùn)行情況是否正常,也可以在應(yīng)用程序出現(xiàn)故障時(shí)快速定位問(wèn)題。比如,做運(yùn)維的同學(xué),在接收到報(bào)警或各種問(wèn)題反饋后,進(jìn)行問(wèn)題排查時(shí)通常都會(huì)先去看各種日志,大部分問(wèn)題都可以在日志中找到答案。再比如,做開(kāi)發(fā)的同學(xué),可以通過(guò)IDE控制臺(tái)上輸出的各種日志進(jìn)行程序調(diào)試。對(duì)于運(yùn)維老司機(jī)或者有經(jīng)驗(yàn)的開(kāi)發(fā)人員,可以快速的通過(guò)日志定位到問(wèn)題的根源??梢?jiàn),日志的重要性不可小覷。日志的作用可以簡(jiǎn)單總結(jié)為以下3點(diǎn):

程序調(diào)試

了解軟件程序運(yùn)行情況,是否正常

軟件程序運(yùn)行故障分析與問(wèn)題定位

如果應(yīng)用的日志信息足夠詳細(xì)和豐富,還可以用來(lái)做用戶(hù)行為分析,如:分析用戶(hù)的操作行為、類(lèi)型洗好、地域分布以及其它更多的信息,由此可以實(shí)現(xiàn)改進(jìn)業(yè)務(wù)、提高商業(yè)利益。

到此這篇關(guān)于Python中關(guān)于logging模塊的學(xué)習(xí)筆記的文章就介紹到這了,更多相關(guān)Python之logging模塊相關(guān)介紹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中tkinter實(shí)現(xiàn)GUI程序三個(gè)實(shí)例教程

    python中tkinter實(shí)現(xiàn)GUI程序三個(gè)實(shí)例教程

    Python提供了多個(gè)GUI庫(kù),使開(kāi)發(fā)人員能夠輕松創(chuàng)建各種交互式界面,這篇文章主要給大家介紹了關(guān)于python中tkinter實(shí)現(xiàn)GUI程序的三個(gè)實(shí)例教程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 聊聊python中not 與 is None的區(qū)別

    聊聊python中not 與 is None的區(qū)別

    這篇文章主要介紹了在python中not 與 is None的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python中for循環(huán)詳解

    Python中for循環(huán)詳解

    這篇文章主要介紹了Python中for循環(huán),有需要的朋友可以參考一下
    2014-01-01
  • python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)

    python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)

    分組統(tǒng)計(jì)在很多時(shí)候都需要用到,可以實(shí)現(xiàn)很多數(shù)據(jù)庫(kù)函數(shù)的功能。本文主要介紹了python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn),感興趣的可以了解一下
    2021-06-06
  • Django框架請(qǐng)求生命周期實(shí)現(xiàn)原理

    Django框架請(qǐng)求生命周期實(shí)現(xiàn)原理

    這篇文章主要介紹了Django框架請(qǐng)求生命周期實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的方法

    Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的方法

    這篇文章主要給大家介紹了關(guān)于Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python調(diào)整PDF文檔頁(yè)邊距的方法小結(jié)

    Python調(diào)整PDF文檔頁(yè)邊距的方法小結(jié)

    PDF 文檔中的邊距是指環(huán)繞每頁(yè)內(nèi)容的空白區(qū)域,充當(dāng)文本或圖像與頁(yè)面邊緣之間的緩沖區(qū),本文將介紹如何使用 Spire.PDF for Python 修改 PDF 文檔的頁(yè)邊距,為不同使用場(chǎng)景定制合適的文檔布局,需要的朋友可以參考下
    2024-05-05
  • 基于Python實(shí)現(xiàn)視頻分辨率轉(zhuǎn)換

    基于Python實(shí)現(xiàn)視頻分辨率轉(zhuǎn)換

    這篇文章主要介紹了基于Python實(shí)現(xiàn)視頻的分辨率轉(zhuǎn)換的示例代碼,文中的代碼講解詳細(xì),對(duì)學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以了解一下
    2021-12-12
  • opencv之為圖像添加邊界的方法示例

    opencv之為圖像添加邊界的方法示例

    這篇文章主要介紹了opencv之為圖像添加邊界的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定

    OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)相機(jī)標(biāo)定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論