最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

記錄Python腳本的運(yùn)行日志的方法

 更新時(shí)間:2019年06月05日 10:57:31   作者:bethansy  
這篇文章主要介紹了記錄Python腳本的運(yùn)行日志的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、logging模塊

Python中有一個(gè)模塊logging,可以直接記錄日志

#  日志級(jí)別
# CRITICAL 50
# ERROR  40
# WARNING 30
# INFO   20
# DEBUG  10

logging.basicConfig()函數(shù)中的具體參數(shù):

filename:   指定的文件名創(chuàng)建FiledHandler,這樣日志會(huì)被存儲(chǔ)在指定的文件中;
filemode:   文件打開(kāi)方式,在指定了filename時(shí)使用這個(gè)參數(shù),默認(rèn)值為“w”還可指定為“a”;
format:      指定handler使用的日志顯示格式;
datefmt:    指定日期時(shí)間格式。,格式參考strftime時(shí)間格式化(下文)
level:        設(shè)置rootlogger的日志級(jí)別
stream:     用指定的stream創(chuàng)建StreamHandler。可以指定輸出到sys.stderr,sys.stdout或者文件,默認(rèn)為sys.stderr。
                  若同時(shí)列出了filename和stream兩個(gè)參數(shù),則stream參數(shù)會(huì)被忽略。

 format參數(shù)中可能用到的格式化信息:

%(name)s

Logger的名字

%(levelno)s

數(shù)字形式的日志級(jí)別

%(levelname)s

文本形式的日志級(jí)別

%(pathname)s

調(diào)用日志輸出函數(shù)的模塊的完整路徑名,可能沒(méi)有

%(filename)s

調(diào)用日志輸出函數(shù)的模塊的文件名

%(module)s

調(diào)用日志輸出函數(shù)的模塊名

%(funcName)s

調(diào)用日志輸出函數(shù)的函數(shù)名

%(lineno)d

調(diào)用日志輸出函數(shù)的語(yǔ)句所在的代碼行

%(created)f

當(dāng)前時(shí)間,用UNIX標(biāo)準(zhǔn)的表示時(shí)間的浮 點(diǎn)數(shù)表示

%(relativeCreated)d

輸出日志信息時(shí)的,自L(fǎng)ogger創(chuàng)建以 來(lái)的毫秒數(shù)

%(asctime)s

字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號(hào)后面的是毫秒

%(thread)d

線(xiàn)程ID??赡軟](méi)有

%(threadName)s

線(xiàn)程名??赡軟](méi)有

%(process)d

進(jìn)程ID??赡軟](méi)有

%(message)s

用戶(hù)輸出的消息

二、logging模塊測(cè)試

1、打印日志到標(biāo)準(zhǔn)輸出中

import logging
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')

輸出結(jié)果

C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:/pyworkpeace/tupian.py 'https://www.tianyancha.com/login'
WARNING:root:warning message

Process finished with exit code 0

可以看出默認(rèn)情況下Python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,且只顯示了大于等于WARNING級(jí)別的日志。默認(rèn)的日志的格式為:

日志級(jí)別:Logger名稱(chēng):用戶(hù)輸出消息

2、將日志文件輸入到文件中

import os
logging.basicConfig(filename=os.path.join(os.getcwd(),'log.txt'),level=logging.DEBUG)
logging.debug('this is a message')

運(yùn)行這三行代碼后會(huì)在安裝Python的目錄中出現(xiàn)一個(gè)log.txt文件,文件內(nèi)容

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級(jí)別,大于此級(jí)別的都被輸出
    format='%(asctime)s %(filename)s : %(levelname)s %(message)s', # 定義輸出log的格式
    datefmt='%Y-%m-%d %A %H:%M:%S', # 時(shí)間
    filename=logFilename, # log文件名
    filemode='w') # 寫(xiě)入模式“w”或“a”
  # Define a Handler and set a format which output to console
  console = logging.StreamHandler() # 定義console handler
  console.setLevel(logging.INFO) # 定義該handler級(jí)別
  formatter = logging.Formatter('%(asctime)s %(filename)s : %(levelname)s %(message)s') # 定義該handler格式
  console.setFormatter(formatter)
  # Create an instance
  logging.getLogger().addHandler(console) # 實(shí)例化添加handler

  # Print information       # 輸出日志級(jí)別
  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')

輸出結(jié)果:

此時(shí)也會(huì)自動(dòng)生成一個(gè)日志文件,日志文件和運(yùn)行文件在同一個(gè)文件夾中,文件名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āng)將腳本中這行代碼換一下,那么我們輸出日志的路徑地址就換成了D:\tmp

下面的方式同樣可以達(dá)到上述結(jié)果

 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') 

由于運(yùn)行腳本放在D:\pyworkpeace\下,輸出文件在D盤(pán)tmp文件夾下test.log,內(nèi)容如下:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Linux系統(tǒng)上通過(guò)uWSGI配置Nginx+Python環(huán)境的教程

    在Linux系統(tǒng)上通過(guò)uWSGI配置Nginx+Python環(huán)境的教程

    這篇文章主要介紹了在Linux系統(tǒng)上通過(guò)uWSGI配置Nginx+Python環(huán)境的教程,示例中為Ubuntu系統(tǒng)并且默認(rèn)使用系統(tǒng)中自帶的Python解釋器,需要的朋友可以參考下
    2015-12-12
  • python iloc和loc切片的實(shí)現(xiàn)

    python iloc和loc切片的實(shí)現(xiàn)

    本文主要介紹了python iloc和loc切片的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • python常見(jiàn)運(yùn)算符及用法小結(jié)

    python常見(jiàn)運(yùn)算符及用法小結(jié)

    python中的運(yùn)算符主要包括算術(shù)運(yùn)算符,關(guān)系(比較)運(yùn)算符,賦值運(yùn)算符,邏輯運(yùn)算符,成員運(yùn)算符,身份運(yùn)算符,三目運(yùn)算符。使用運(yùn)算符將不同類(lèi)型的數(shù)據(jù)按照一定的規(guī)則連接起來(lái)的式子,稱(chēng)為表達(dá)式。下面將介紹一些常用的運(yùn)算符
    2022-08-08
  • 基于keras輸出中間層結(jié)果的2種實(shí)現(xiàn)方式

    基于keras輸出中間層結(jié)果的2種實(shí)現(xiàn)方式

    今天小編就為大家分享一篇基于keras輸出中間層結(jié)果的2種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python實(shí)現(xiàn)Dijkstra算法

    Python實(shí)現(xiàn)Dijkstra算法

    今天小編就為大家分享一篇關(guān)于Python實(shí)現(xiàn)Dijkstra算法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • Python讀取文件內(nèi)容的三種常用方式及效率比較

    Python讀取文件內(nèi)容的三種常用方式及效率比較

    這篇文章主要介紹了Python讀取文件內(nèi)容的三種常用方式及效率比較,結(jié)合具體實(shí)例形式給出了三種文件讀取的常見(jiàn)方法并對(duì)比分析了讀取速度,需要的朋友可以參考下
    2017-10-10
  • Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Python使用Selenium實(shí)現(xiàn)模擬登錄的示例代碼

    Selenium(本文基于python3.8)是一個(gè)功能強(qiáng)大的自動(dòng)化測(cè)試工具,它可以用于模擬用戶(hù)在瀏覽器中的行為,比如點(diǎn)擊、輸入、滾動(dòng)等等,本教程將詳細(xì)介紹如何使用Python編寫(xiě)一個(gè)模擬登錄地爬蟲(chóng),使用XPath等多種元素匹配方法,需要的朋友可以參考下
    2023-08-08
  • python使用Plotly繪圖工具繪制柱狀圖

    python使用Plotly繪圖工具繪制柱狀圖

    這篇文章主要為大家詳細(xì)介紹了python使用Plotly繪圖工具繪制柱狀圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python抓取某汽車(chē)網(wǎng)數(shù)據(jù)解析html存入excel示例

    python抓取某汽車(chē)網(wǎng)數(shù)據(jù)解析html存入excel示例

    python抓取某汽車(chē)網(wǎng)經(jīng)銷(xiāo)商信息網(wǎng)頁(yè)數(shù)據(jù)解析html,這里提供一個(gè)示例演示,大家可以根據(jù)需要分析自己網(wǎng)站的數(shù)據(jù)
    2013-12-12
  • 最新解決沒(méi)有NVSMI文件夾以及nvidia-smi‘?不是內(nèi)部或外部命令也不是可運(yùn)行的程序或批處理文件

    最新解決沒(méi)有NVSMI文件夾以及nvidia-smi‘?不是內(nèi)部或外部命令也不是可運(yùn)行的程序或批處理文件

    這篇文章主要介紹了解決沒(méi)有NVSMI文件夾以及nvidia-smi‘?不是內(nèi)部或外部命令也不是可運(yùn)行的程序或批處理文件,本文通過(guò)兩種問(wèn)題分析給大家分享解決方法,需要的朋友可以參考下
    2023-01-01

最新評(píng)論

霞浦县| 崇州市| 富川| 赤城县| 金阳县| 称多县| 集安市| 南通市| 潞城市| 晋州市| 玉门市| 辽源市| 海淀区| 香格里拉县| 德钦县| 云安县| 望谟县| 荣成市| 夏邑县| 西林县| 纳雍县| 尤溪县| 临城县| 阳春市| 金湖县| 泸定县| 郯城县| 旅游| 屏东市| 榆中县| 长宁区| 四平市| 邛崃市| 山阳县| 锡林郭勒盟| 攀枝花市| 保山市| 高碑店市| 浮梁县| 北辰区| 霍州市|