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

Python中的logging模塊詳解

 更新時(shí)間:2023年09月22日 09:29:51   作者:XWenXiang  
這篇文章主要介紹了Python中的logging模塊詳解,默認(rèn)情況下Python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,且只顯示了大于等于WARNING級(jí)別的日志,這說(shuō)明默認(rèn)的日志級(jí)別設(shè)置為WARNING,需要的朋友可以參考下

logging模塊介紹

這個(gè)模塊為應(yīng)用與庫(kù)實(shí)現(xiàn)了靈活的事件日志系統(tǒng)的函數(shù)與類

該模塊定義的基礎(chǔ)類和函數(shù)都列在下面。記錄器暴露了應(yīng)用程序代碼直接使用的接口。

處理器將日志記錄(由記錄器創(chuàng)建)發(fā)送到適當(dāng)?shù)哪繕?biāo)。過(guò)濾器提供了更細(xì)粒度的功能,用于確定要輸出的日志記錄。格式器指定最終輸出中日志記錄的樣式。

日志級(jí)別

日志記錄級(jí)別的數(shù)值在下表中給出

級(jí)別數(shù)值
CRITICAL50
ERROR40
WARNING30
INFO20
DEBUG10
NOTSET0

默認(rèn)情況下Python的logging模塊將日志打印到了標(biāo)準(zhǔn)輸出中,且只顯示了大于等于WARNING級(jí)別的日志,這說(shuō)明默認(rèn)的日志級(jí)別設(shè)置為WARNING 。

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

不需要打印,執(zhí)行文件會(huì)得到以下結(jié)果:

WARNING:root:warning message
ERROR:root:error message
CRITICAL:root:critical message

模板

import logging
import logging.config
import os
# 定義日志輸出格式 開始
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
                  '[%(levelname)s][%(message)s]' #其中name為getlogger指定的名字
simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
# 定義日志輸出格式 結(jié)束
# 自定義文件路徑
url = os.path.dirname(os.path.dirname(__file__))
url_a = os.path.join(url, 'log')
if not os.path.exists(url_a):
    os.mkdir(url_a)
logfile_path = os.path.join(url_a, 'log_a.log')
# log配置字典
LOGGING_DIC = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': standard_format
        },
        'simple': {
            'format': simple_format
        },
    },
    'filters': {},  # 過(guò)濾日志
    'handlers': {
        #打印到終端的日志
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple'
        },
        #打印到文件的日志,收集info及以上的日志
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件
            'formatter': 'standard',
            'filename': logfile_path,  # 日志文件路徑
            'maxBytes': 1024*1024*5,  # 日志大小 5M
            'backupCount': 5,
            'encoding': 'utf-8',  # 日志文件的編碼,再也不用擔(dān)心中文log亂碼了
        },
    },
    'loggers': {
        #logging.getLogger(__name__)拿到的logger配置
        # '': {
        #     'handlers': ['default', 'console'],  # 這里把上面定義的兩個(gè)handler都加上,即log數(shù)據(jù)既寫入文件又打印到屏幕
        #     'level': 'DEBUG',
        #     'propagate': True,  # 向上(更高level的logger)傳遞
        # },  # 當(dāng)鍵不存在的情況下 (key設(shè)為空字符串)默認(rèn)都會(huì)使用該k:v配置
        '注冊(cè)記錄': {
            'handlers': ['console'],  # 這里把上面定義的兩個(gè)handler都加上,即log數(shù)據(jù)既寫入文件又打印到屏幕
            'level': 'WARNING',
            'propagate': True,  # 向上(更高level的logger)傳遞
        },  # 當(dāng)鍵不存在的情況下 (key設(shè)為空字符串)默認(rèn)都會(huì)使用該k:v配置
    },
}
# 使用日志字典配置
logging.config.dictConfig(LOGGING_DIC)  # 自動(dòng)加載字典中的配置
# logger1 = logging.getLogger('轉(zhuǎn)賬記錄')
logger2 = logging.getLogger('注冊(cè)記錄')
# logger1.debug('別忘點(diǎn)贊')
logger2.error('xxx轉(zhuǎn)賬100000¥')

logging.basicConfig()函數(shù)中可通過(guò)具體參數(shù)來(lái)更改logging模塊默認(rèn)行為,可用參數(shù)有:

  • filename:用指定的文件名創(chuàng)建FiledHandler,這樣日志會(huì)被存儲(chǔ)在指定的文件中。
  • filemode:文件打開方式,在指定了filename時(shí)使用這個(gè)參數(shù),默認(rèn)值為“a”還可指定為“w”。
  • format:指定handler使用的日志顯示格式。
  • datefmt:指定日期時(shí)間格式。
  • level:設(shè)置rootlogger(后邊會(huì)講解具體概念)的日志級(jí)別
  • stream:用指定的stream創(chuàng)建StreamHandler??梢灾付ㄝ敵龅絪ys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默認(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í)的,自Logger創(chuàng)建以 來(lái)的毫秒數(shù)
  • %(asctime)s 字符串形式的當(dāng)前時(shí)間。默認(rèn)格式是 “2003-07-08 16:49:45,896”。逗號(hào)后面的是毫秒
  • %(thread)d 線程ID??赡軟](méi)有
  • %(threadName)s 線程名。可能沒(méi)有
  • %(process)d 進(jìn)程ID。可能沒(méi)有
  • %(message)s用戶輸出的消息

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

相關(guān)文章

  • python中的對(duì)象拷貝示例 python引用傳遞

    python中的對(duì)象拷貝示例 python引用傳遞

    你想復(fù)制一個(gè)對(duì)象?因?yàn)樵赑ython中,無(wú)論你把對(duì)象做為參數(shù)傳遞,做為函數(shù)返回值,都是引用傳遞的
    2014-01-01
  • pyspark 讀取csv文件創(chuàng)建DataFrame的兩種方法

    pyspark 讀取csv文件創(chuàng)建DataFrame的兩種方法

    今天小編就為大家分享一篇pyspark 讀取csv文件創(chuàng)建DataFrame的兩種方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則

    關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則

    這篇文章主要介紹了關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則,眾所周知,相同?shape?的兩個(gè)數(shù)組間運(yùn)算是指兩個(gè)數(shù)組的對(duì)應(yīng)元素相加,我們經(jīng)常會(huì)碰到一些不同?shape?的數(shù)組間運(yùn)算,需要的朋友可以參考下
    2023-08-08
  • Python+Opencv識(shí)別兩張相似圖片

    Python+Opencv識(shí)別兩張相似圖片

    python的功能實(shí)在太強(qiáng)大,這篇文章主要介紹了Python+Opencv識(shí)別兩張相似圖片的相關(guān)資料,文中利用Opencv庫(kù)進(jìn)行了更簡(jiǎn)潔化的實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2016-04-04
  • python3實(shí)現(xiàn)單目標(biāo)粒子群算法

    python3實(shí)現(xiàn)單目標(biāo)粒子群算法

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)單目標(biāo)粒子群算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • pytorch常用函數(shù)定義及resnet模型修改實(shí)例

    pytorch常用函數(shù)定義及resnet模型修改實(shí)例

    這篇文章主要為大家介紹了pytorch常用函數(shù)定義及resnet模型修改實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • django數(shù)據(jù)庫(kù)migrate失敗的解決方法解析

    django數(shù)據(jù)庫(kù)migrate失敗的解決方法解析

    這篇文章主要介紹了django數(shù)據(jù)庫(kù)migrate失敗的解決方法解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼

    剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼

    這篇文章主要介紹了剖析Python的Tornado框架中session支持的實(shí)現(xiàn)代碼,這樣就可以使用Django等框架中大家所熟悉的session了,需要的朋友可以參考下
    2015-08-08
  • 如何使用Python打包APK

    如何使用Python打包APK

    這篇文章主要介紹了Linux環(huán)境下的Python打包和部署實(shí)踐的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • matplotlib subplots 調(diào)整子圖間矩的實(shí)例

    matplotlib subplots 調(diào)整子圖間矩的實(shí)例

    今天小編就為大家分享一篇matplotlib subplots 調(diào)整子圖間矩的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05

最新評(píng)論