這篇文章給大家分享的是有關如何記錄Python腳本的運行日志的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網站策劃、網站設計、成都網站制作、成都網站設計、電子商務、網站推廣、網站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網的全面整合營銷服務。公司擁有豐富的網站建設和互聯(lián)網應用系統(tǒng)開發(fā)管理經驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網站開發(fā)工程師團隊及專業(yè)的網站設計師團隊。一、logging模塊
Python中有一個模塊logging,可以直接記錄日志
# 日志級別 # CRITICAL 50 # ERROR 40 # WARNING 30 # INFO 20 # DEBUG 10
logging.basicConfig()函數(shù)中的具體參數(shù):
filename: 指定的文件名創(chuàng)建FiledHandler,這樣日志會被存儲在指定的文件中;
filemode: 文件打開方式,在指定了filename時使用這個參數(shù),默認值為“w”還可指定為“a”;
format: 指定handler使用的日志顯示格式;
datefmt: 指定日期時間格式。,格式參考strftime時間格式化(下文)
level: 設置rootlogger的日志級別
stream: 用指定的stream創(chuàng)建StreamHandler。可以指定輸出到sys.stderr,sys.stdout或者文件,默認為sys.stderr。
若同時列出了filename和stream兩個參數(shù),則stream參數(shù)會被忽略。
format參數(shù)中可能用到的格式化信息:
%(name)s | Logger的名字 |
%(levelno)s | 數(shù)字形式的日志級別 |
%(levelname)s | 文本形式的日志級別 |
%(pathname)s | 調用日志輸出函數(shù)的模塊的完整路徑名,可能沒有 |
%(filename)s | 調用日志輸出函數(shù)的模塊的文件名 |
%(module)s | 調用日志輸出函數(shù)的模塊名 |
%(funcName)s | 調用日志輸出函數(shù)的函數(shù)名 |
%(lineno)d | 調用日志輸出函數(shù)的語句所在的代碼行 |
%(created)f | 當前時間,用UNIX標準的表示時間的浮 點數(shù)表示 |
%(relativeCreated)d | 輸出日志信息時的,自Logger創(chuàng)建以 來的毫秒數(shù) |
%(asctime)s | 字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒 |
%(thread)d | 線程ID??赡軟]有 |
%(threadName)s | 線程名。可能沒有 |
%(process)d | 進程ID。可能沒有 |
%(message)s | 用戶輸出的消息 |
二、logging模塊測試
1、打印日志到標準輸出中
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message')
輸出結果
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:/pyworkpeace/tupian.py 'https://www.tianyancha.com/login'
WARNING:root:warning messageProcess finished with exit code 0
可以看出默認情況下Python的logging模塊將日志打印到了標準輸出中,且只顯示了大于等于WARNING級別的日志。默認的日志的格式為:
日志級別:Logger名稱:用戶輸出消息
2、將日志文件輸入到文件中
import os logging.basicConfig(filename=os.path.join(os.getcwd(),'log.txt'),level=logging.DEBUG) logging.debug('this is a message')
運行這三行代碼后會在安裝Python的目錄中出現(xiàn)一個log.txt文件,文件內容
DEBUG:root:this is a message
DEBUG:root:debug message
3、自定義格式,輸出日志文件
# -*-coding:utf-8-*- import logging def console_out(logFilename): ''''' Output log to file and console ''' # Define a Handler and set a format which output to file logging.basicConfig( level=logging.DEBUG, # 定義輸出到文件的log級別,大于此級別的都被輸出 format='%(asctime)s %(filename)s : %(levelname)s %(message)s', # 定義輸出log的格式 datefmt='%Y-%m-%d %A %H:%M:%S', # 時間 filename=logFilename, # log文件名 filemode='w') # 寫入模式“w”或“a” # Define a Handler and set a format which output to console console = logging.StreamHandler() # 定義console handler console.setLevel(logging.INFO) # 定義該handler級別 formatter = logging.Formatter('%(asctime)s %(filename)s : %(levelname)s %(message)s') # 定義該handler格式 console.setFormatter(formatter) # Create an instance logging.getLogger().addHandler(console) # 實例化添加handler # Print information # 輸出日志級別 logging.debug('logger debug message') logging.info('logger info message') logging.warning('logger warning message') logging.error('logger error message') logging.critical('logger critical message') if __name__ == "__main__": console_out('logging.log')
輸出結果:
此時也會自動生成一個日志文件,日志文件和運行文件在同一個文件夾中,文件名logging.log
2017-10-23 Monday 11:37:59 hgghf : DEBUG logger debug message
2017-10-23 Monday 11:37:59 hgghf : INFO logger info message
2017-10-23 Monday 11:37:59 hgghf : WARNING logger warning message
2017-10-23 Monday 11:37:59 hgghf : ERROR logger error message
2017-10-23 Monday 11:37:59 hgghf : CRITICAL logger critical message
修改輸出路徑:
filename='/tmp/test1.log', # log文件名
當將腳本中這行代碼換一下,那么我們輸出日志的路徑地址就換成了D:\tmp
下面的方式同樣可以達到上述結果
4、自定義輸出位置
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/tmp/test.log', filemode='w') logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
由于運行腳本放在D:\pyworkpeace\下,輸出文件在D盤tmp文件夾下test.log,內容如下:
Mon, 23 Oct 2017 15:00:05 tupian.py[line:11] DEBUG debug message
Mon, 23 Oct 2017 15:00:05 tupian.py[line:12] INFO info message
Mon, 23 Oct 2017 15:00:05 tupian.py[line:13] WARNING warning message
Mon, 23 Oct 2017 15:00:05 tupian.py[line:14] ERROR error message
Mon, 23 Oct 2017 15:00:05 tupian.py[line:15] CRITICAL critical message
感謝各位的閱讀!關于“如何記錄Python腳本的運行日志”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:如何記錄Python腳本的運行日志-創(chuàng)新互聯(lián)
網站路徑:http://m.rwnh.cn/article26/djiojg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供外貿網站建設、響應式網站、商城網站、標簽優(yōu)化、品牌網站制作、網站排名
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)