Python的log日志功能及設置方法
引入:Python中有個logging模塊可以完成相關信息的記錄,在debug時用它往往事半功倍
一、日志級別(從低到高):
DEBUG :詳細的信息,通常只出現(xiàn)在診斷問題上
INFO:確認一切按預期運行
WARNING:一個跡象表明,一些意想不到的事情發(fā)生了,或表明一些問題在不久的將來(例如。磁盤空間低”)。這個軟件還能按預期工作。
ERROR:更嚴重的問題,軟件沒能執(zhí)行一些功能
CRITICAL :一個嚴重的錯誤,這表明程序本身可能無法繼續(xù)運行
注:這5個等級,也分別對應5種打日志的方法: debug 、info 、warning 、error 、critical。默認的是WARNING,當在WARNING或之上時才被跟蹤。
二、日志輸出:顯示到控制臺或保存到文件中,可以靈活選用
# 這里為了簡便,同時處理:輸出控制臺和保存到文件中
import logging
# 第一步,創(chuàng)建一個logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等級總開關
# 第二步,創(chuàng)建一個handler,用于寫入日志文件
logfile = './log.txt'
fh = logging.FileHandler(logfile, mode='a') # open的打開模式這里可以進行參考
fh.setLevel(logging.DEBUG) # 輸出到file的log等級的開關
# 第三步,再創(chuàng)建一個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')
三、日志格式說明
logging.basicConfig函數(shù)中,可以指定日志的輸出格式format,這個參數(shù)可以輸出很多有用的信息,如下:
%(levelno)s: 打印日志級別的數(shù)值
%(levelname)s: 打印日志級別名稱
%(pathname)s: 打印當前執(zhí)行程序的路徑,其實就是sys.argv[0]
%(filename)s: 打印當前執(zhí)行程序名
%(funcName)s: 打印日志的當前函數(shù)
%(lineno)d: 打印日志的當前行號
%(asctime)s: 打印日志的時間
%(thread)d: 打印線程ID
%(threadName)s: 打印線程名稱
%(process)d: 打印進程ID
%(message)s: 打印日志信息
以上這篇Python的log日志功能及設置方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python 數(shù)據(jù)處理庫 pandas進階教程
在前面一篇文章中,我們對pandas做了一些入門介紹。本文是它的進階篇。在這篇文章中,我們會講解一些更深入的知識2018-04-04
python實現(xiàn)將多個文件分配到多個文件夾的方法
今天小編就為大家分享一篇python實現(xiàn)將多個文件分配到多個文件夾的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Django ORM判斷查詢結果是否為空,判斷django中的orm為空實例
這篇文章主要介紹了Django ORM判斷查詢結果是否為空,判斷django中的orm為空實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Python之標點符號string.punctuation的使用
Python的string模塊提供了一個方便的屬性string.punctuation,其中包含所有ASCII標點符號字符,這使得在處理和識別字符串中的標點符號時非常有用,可以通過簡單的in關鍵字來檢測字符是否為標點2024-09-09
CentOS 7下Python 2.7升級至Python3.6.1的實戰(zhàn)教程
Centos是目前最為流行的Linux服務器系統(tǒng),其默認的Python 2.x,這篇文章主要給大家分享了關于在CentOS 7下Python 2.7升級至Python3.6.1的實戰(zhàn)教程,文中將升級的步驟一步步的介紹的非常詳細,對大家的理解和學習具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-07-07
Python線程池ThreadPoolExecutor使用方式
這篇文章主要介紹了Python線程池ThreadPoolExecutor使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02

