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

python關(guān)于第三方日志的QA記錄詳解

 更新時間:2023年10月08日 09:36:18   作者:ponponon  
這篇文章主要為大家介紹了python關(guān)于第三方日志的QA記錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Q:python 查看當(dāng)前的日志級別

A:在 Python 中,你可以使用 logging 模塊來查看當(dāng)前的日志級別。logging 模塊提供了一個全局的日志系統(tǒng),它包含了各種配置和方法,允許你控制日志的輸出。

以下是一個簡單的例子,演示如何查看當(dāng)前的日志級別:

import logging
# 獲取根日志記錄器
logger = logging.getLogger()
# 獲取當(dāng)前的日志級別
current_log_level = logger.getEffectiveLevel()
# 輸出當(dāng)前的日志級別
print(f"Current log level: {current_log_level}")
# 設(shè)置一個日志級別(僅用于演示,你可能不需要設(shè)置級別)
logger.setLevel(logging.DEBUG)
# 再次獲取當(dāng)前的日志級別
current_log_level = logger.getEffectiveLevel()
# 輸出更新后的日志級別
print(f"Updated log level: {current_log_level}")

在這個例子中,首先使用 getEffectiveLevel() 方法獲取當(dāng)前的日志級別,并將其打印出來。然后,通過 setLevel() 方法設(shè)置了一個新的日志級別(在實際應(yīng)用中,你可能不需要設(shè)置級別,這只是為了演示目的)。最后,再次獲取當(dāng)前的日志級別并打印出來。

請注意,getEffectiveLevel() 返回的是數(shù)值,你可以使用 logging 模塊中定義的常量(如 logging.DEBUG、logging.INFO 等)來比較這些值,以便更容易理解日志級別。

Q:輸出值是 30,表示什么?

A: 在 Python 的 logging 模塊中,日志級別使用整數(shù)值表示,這些整數(shù)值對應(yīng)于預(yù)定義的幾個常量。這些整數(shù)值反映了一個日志消息的優(yōu)先級,從最低級別的 DEBUG 到最高級別的 CRITICAL。

下面是一些常用的日志級別和它們對應(yīng)的整數(shù)值:

  • CRITICAL: 50
  • ERROR: 40
  • WARNING (或 WARN): 30
  • INFO: 20
  • DEBUG: 10
  • NOTSET: 0

在你的代碼中,如果 logger.getEffectiveLevel() 返回值為 30,表示當(dāng)前的日志級別為 WARNING。這意味著只有 WARNING、ERROR 和 CRITICAL 級別的日志消息會被記錄,而 INFO 和 DEBUG 級別的消息將被忽略。

如果你想要輸出更詳細(xì)的日志信息,你可以通過調(diào)整日志級別來設(shè)置為更低的值。例如,使用 logger.setLevel(logging.DEBUG) 將會啟用 DEBUG 級別及以上的所有日志消息。

Q: 怎么讓 logger 輸出到標(biāo)準(zhǔn)輸出

A: 在 Python 的 logging 模塊中,日志可以配置為輸出到不同的地方,其中之一是標(biāo)準(zhǔn)輸出。通常,如果你想將日志輸出到標(biāo)準(zhǔn)輸出,你可以進(jìn)行以下配置:

import logging
# 獲取根日志記錄器
logger = logging.getLogger()
# 創(chuàng)建一個 StreamHandler,用于將日志輸出到標(biāo)準(zhǔn)輸出
stream_handler = logging.StreamHandler()
# 創(chuàng)建一個格式化器,可選,根據(jù)需要進(jìn)行配置
formatter = logging.Formatter('%(levelname)s - %(message)s')
stream_handler.setFormatter(formatter)
# 將 StreamHandler 添加到日志記錄器中
logger.addHandler(stream_handler)
# 設(shè)置日志級別,可選,根據(jù)需要進(jìn)行配置
logger.setLevel(logging.DEBUG)
# 之后的日志消息將會輸出到標(biāo)準(zhǔn)輸出
logger.debug("This is a debug message.")
logger.info("This is an info message.")
logger.warning("This is a warning message.")
logger.error("This is an error message.")

在上面的例子中,我們使用 logging.StreamHandler() 創(chuàng)建了一個處理器,該處理器將日志消息發(fā)送到標(biāo)準(zhǔn)輸出。然后,我們可以通過 logger.addHandler(stream_handler) 將這個處理器添加到日志記錄器中。最后,我們通過 logger.setLevel(logging.DEBUG) 設(shè)置了日志級別,以確保低于指定級別的日志消息不會被輸出。

請注意,這只是一個基本的配置示例,你可以根據(jù)實際需求對格式、級別等進(jìn)行調(diào)整。

Q: logger.warning 的 exc_info 參數(shù)是干嘛的

A: exc_info 是 logger.warning 等級函數(shù)中的一個可選參數(shù),用于指定是否將異常信息記錄到日志中。當(dāng)你使用 logger.warning 記錄一條日志,并且在該日志消息中包含了異常信息,exc_info 參數(shù)可以控制是否在日志中包含詳細(xì)的異常信息(traceback)。

以下是 logger.warning 函數(shù)的簽名:

Logger.warning(msg, *args, exc_info=False, **kwargs)
  • msg: 要記錄的日志消息,可以包含格式化字符串。
  • *args: 用于格式化字符串的參數(shù)。
  • exc_info: 一個布爾值,如果為 True,則將異常信息(traceback)包含在日志中。如果為 False(默認(rèn)),則不包含異常信息。
  • **kwargs: 其他可選的參數(shù),例如 extrastack_info 等。

示例使用:

import logging
# 獲取根日志記錄器
logger = logging.getLogger()
try:
    # 一些可能引發(fā)異常的代碼
    result = 1 / 0
except Exception as e:
    # 記錄警告級別的日志,并將異常信息包含在日志中
    logger.warning("An error occurred: %s", e, exc_info=True)

在這個例子中,exc_info=True 將導(dǎo)致日志中包含詳細(xì)的異常信息,包括 traceback。如果省略 exc_info 參數(shù)或?qū)⑵湓O(shè)置為 False,則日志中將不包含異常信息。

注意:通常,將異常信息記錄到日志中可以幫助你在排查問題時更容易找到出錯的地方,但要謹(jǐn)慎使用,尤其是在生產(chǎn)環(huán)境中,因為詳細(xì)的異常信息可能包含敏感信息。

Q: 如何刪除所有 logger 的 所有 Handler

A: 如果你想要刪除所有 logger 的所有 handler,可以通過以下方式實現(xiàn):

import logging
# 獲取所有已經(jīng)存在的 logger 名稱
existing_loggers = logging.Logger.manager.loggerDict.keys()
# 遍歷每個 logger,并刪除其所有 handler
for logger_name in existing_loggers:
    logger = logging.getLogger(logger_name)
    handlers = logger.handlers[:]
    for handler in handlers:
        logger.removeHandler(handler)
        handler.close()

這段代碼首先獲取了所有已經(jīng)存在的 logger 名稱,然后遍歷每個 logger,并刪除其所有 handler。在刪除 handler 之后,還調(diào)用了 handler.close() 來關(guān)閉每個 handler,釋放可能被占用的資源。

請注意,這會刪除所有 logger 的 handler,包括你之前可能設(shè)置的一些配置。如果你只想刪除根 logger 的 handler,可以使用以下代碼:

import logging
# 獲取根 logger
logger = logging.getLogger()
# 獲取根 logger 的所有 handler
handlers = logger.handlers[:]
# 遍歷每個 handler 并刪除
for handler in handlers:
    logger.removeHandler(handler)
    handler.close()

這樣只會刪除根 logger 的 handler,而不會影響其他 logger。如果你之前設(shè)置了其他 logger 的 handler,它們將不受影響。

Q:python 查看所有 logger

A: 你可以使用 logging 模塊的 Logger.manager 屬性來獲取所有已創(chuàng)建的 logger 對象的名稱。這可以通過以下方式實現(xiàn):

import logging
# 獲取所有已經(jīng)存在的 logger 名稱
existing_loggers = logging.Logger.manager.loggerDict.keys()
# 打印所有 logger 的名稱
for logger_name in existing_loggers:
    print(logger_name)

上述代碼首先獲取了 Logger.manager.loggerDict 中的所有鍵,每個鍵都是一個 logger 對象的名稱。然后,通過循環(huán)遍歷這些鍵,即 logger 名稱,并打印出來。

需要注意的是,Logger.manager 是 logging 模塊的一個全局變量,用于管理所有的 logger 對象。這個方法僅能獲取在當(dāng)前運行時已經(jīng)創(chuàng)建的 logger,如果你在后續(xù)代碼中創(chuàng)建了新的 logger,它們也會被包括在內(nèi)。

如果你想獲取每個 logger 對象本身,而不僅僅是名稱,你可以使用 logging.getLogger(logger_name) 方法:

import logging
# 獲取所有已經(jīng)存在的 logger 名稱
existing_loggers = logging.Logger.manager.loggerDict.keys()
# 獲取每個 logger 對象本身
loggers = [logging.getLogger(logger_name) for logger_name in existing_loggers]
# 打印每個 logger 對象
for logger in loggers:
    print(logger)

這樣,你就可以獲取到所有已創(chuàng)建的 logger 對象。

以上就是python關(guān)于第三方日志的QA記錄詳解的詳細(xì)內(nèi)容,更多關(guān)于python第三方日志QA記錄的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python數(shù)字類型math庫原理解析

    python數(shù)字類型math庫原理解析

    這篇文章主要介紹了python數(shù)字類型math庫原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python之while循環(huán)、無限循環(huán)用法及說明

    python之while循環(huán)、無限循環(huán)用法及說明

    這篇文章主要介紹了python之while循環(huán)、無限循環(huán)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python八個自動化辦公的技巧

    Python八個自動化辦公的技巧

    這篇文章主要介紹了幾個Python自動化辦公的技巧,可以大大提高工作效率,例如:Word文檔doc轉(zhuǎn)docx、Excel文件批量合并、Word文件批量轉(zhuǎn)pdf等,需要的可以參考一下
    2022-01-01
  • Python虛擬環(huán)境virtualenv安裝的詳細(xì)教程保姆級(Windows和linux)

    Python虛擬環(huán)境virtualenv安裝的詳細(xì)教程保姆級(Windows和linux)

    本文詳細(xì)介紹了如何在Linux和Windows系統(tǒng)上安裝和配置virtualenv虛擬環(huán)境,包括依賴包安裝、系統(tǒng)環(huán)境變量設(shè)置、激活和退出環(huán)境,以及在PyCharm中的應(yīng)用和導(dǎo)出依賴文件,需要的朋友可以參考下
    2024-09-09
  • 關(guān)于python變量的引用以及在底層存儲原理

    關(guān)于python變量的引用以及在底層存儲原理

    Python的變量,簡單來說有數(shù)值型,布爾型,字符串類型,列表,元組,字典等6大類。那么不同變量類型在底層是如何存儲的,關(guān)系到變量的引用,能否正確的掌握變量的相關(guān)操作?接下來小編就來為大家講解python變量的引用以及在底層存儲原理,需要的朋友可以參考一下
    2021-09-09
  • Python基于有道實現(xiàn)英漢字典功能

    Python基于有道實現(xiàn)英漢字典功能

    這篇文章主要介紹了Python基于有道實現(xiàn)英漢字典功能的方法,通過調(diào)用有道查詢接口實現(xiàn)英漢字典功能,簡單實用,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Python?NumPy隨機(jī)抽模塊介紹及方法

    Python?NumPy隨機(jī)抽模塊介紹及方法

    這篇文章主要介紹了Python?NumPy隨機(jī)抽模塊介紹及方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • python中單例常用的幾種實現(xiàn)方法總結(jié)

    python中單例常用的幾種實現(xiàn)方法總結(jié)

    Python 的模塊就是天然的單例模式,下面這篇文章主要給大家介紹了關(guān)于python中單例常用的幾種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python單例具有一定的參考學(xué)習(xí)價值,需要的朋友們一起來看看吧
    2018-10-10
  • Python+Kepler.gl實現(xiàn)時間輪播地圖過程解析

    Python+Kepler.gl實現(xiàn)時間輪播地圖過程解析

    這篇文章主要介紹了Python+Kepler.gl實現(xiàn)時間輪播地圖過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • python基于plotly實現(xiàn)畫餅狀圖代碼實例

    python基于plotly實現(xiàn)畫餅狀圖代碼實例

    這篇文章主要介紹了python基于plotly實現(xiàn)畫餅狀圖代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12

最新評論