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

Python自定義logger模塊的實例代碼

 更新時間:2024年02月26日 10:46:13   作者:碼農(nóng)研究僧  
Python標(biāo)準(zhǔn)庫中的logging模塊提供了日志記錄的功能,自定義 Logger 可以根據(jù)項目的需求定制化日志記錄,滿足特定的日志記錄格式、輸出目標(biāo)和日志級別等要求,本文給大家介紹了Python自定義logger模塊的實例代碼,需要的朋友可以參考下

1. 內(nèi)置logger

Python標(biāo)準(zhǔn)庫中的logging模塊提供了日志記錄的功能

允許開發(fā)者通過創(chuàng)建日志記錄器、處理程序和格式化器來控制日志的生成和輸出

以下是logging模塊的一些主要組件和概念:

  • 日志記錄器 (Logger):整個日志系統(tǒng)的主要入口點
    每個日志記錄操作都通過一個特定的日志記錄器來執(zhí)行。通常,每個模塊或子系統(tǒng)都會創(chuàng)建自己的日志記錄器
    使用logging.getLogger(name)方法來獲取或創(chuàng)建一個日志記錄器,其中name參數(shù)是日志記錄器的名稱。如果省略name參數(shù),則返回根日志記錄器
  • 處理程序 (Handler)
    負(fù)責(zé)將日志記錄發(fā)送到指定的目標(biāo),比如控制臺、文件、網(wǎng)絡(luò)等
    通過logging.StreamHandler、logging.FileHandler等類來創(chuàng)建不同類型的處理程序
  • 格式化器 (Formatter):定義了日志消息的外觀
    通過指定格式字符串來自定義日志消息的格式 或者 使用logging.Formatter類創(chuàng)建格式化器
  • 日志級別 (Log Level)
    日志級別用于表示日志消息的重要性或嚴(yán)重程度,按嚴(yán)重程度從低到高排序:DEBUG、INFO、WARNING、ERROR、CRITICAL
    日志記錄器和處理程序可以設(shè)置最小日志級別,只有達(dá)到或超過該級別的日志消息才會被處理
import logging

# 創(chuàng)建日志記錄器
logger = logging.getLogger('碼農(nóng)研究僧')
logger.setLevel(logging.DEBUG)

# 創(chuàng)建處理程序并設(shè)置級別
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 創(chuàng)建格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)

# 將處理程序添加到日志記錄器
logger.addHandler(console_handler)

# 記錄日志
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')
logger.critical('This is a critical message')

截圖如下:

在這里插入圖片描述

如果日志記錄器設(shè)置的登記為WARNING

# 創(chuàng)建日志記錄器
logger = logging.getLogger('碼農(nóng)研究僧')
logger.setLevel(logging.WARNING)

則輸出結(jié)果如下:

在這里插入圖片描述

2. 自定義logger

自定義 Logger 可以根據(jù)項目的需求定制化日志記錄,滿足特定的日志記錄格式、輸出目標(biāo)和日志級別等要求

通過自定義 Logger,可以實現(xiàn)以下功能:

  • 定制化日志格式:可以根據(jù)需求定義日志的格式,包括時間、模塊、級別、消息等信息
  • 輸出到不同的目標(biāo):可以將日志記錄到控制臺、文件、數(shù)據(jù)庫、網(wǎng)絡(luò)等不同的目標(biāo),方便日志的查看和管理
  • 靈活設(shè)置日志級別:可以根據(jù)項目的需要設(shè)置不同級別的日志記錄,滿足不同的調(diào)試和排錯需求
  • 增加額外的功能:可以擴(kuò)展 Logger 的功能,如添加日志的歸檔、壓縮、加密等功能

可以整個拷貝的logger模塊:

from datetime import datetime
from os import path
from sys import stdout

from loguru import logger


class MyLogger(object):
    def __init__(self, log_name, level="INFO") -> logger:
        logger.remove()
        fmt = '<level>{time:YYYY-MM-DD HH:mm:ss} | {module}: {level} >> {message}</level>'
        logger.add(stdout, format=fmt)
        self.my_logger = logger
        _today = datetime.today().strftime("%Y_%m_%d")
        log_path = f"{log_name}{_today}.log"
        self.name = path.basename(log_path)
        self.my_logger.add(
            log_path, encoding="utf-8", retention='7 days', rotation="50 MB", compression='zip', format=fmt,
            enqueue=True, level=level)

    def info(self, content):
        self.my_logger.opt(depth=1).info(content)

    def debug(self, content):
        self.my_logger.opt(depth=1).debug(content)

    def error(self, content, *args, **kwargs):
        self.my_logger.opt(depth=1).error(content)
        if len(args) > 0 or len(kwargs) > 0:
            self.exception("Error details:", *args, **kwargs)

    def exception(self, content, *args, **kwargs):
        self.my_logger.opt(depth=1).exception(content, *args, **kwargs)

    def warning(self, content):
        self.my_logger.opt(depth=1).warning(content)

測試如下:

# 創(chuàng)建一個名為 "my_app" 的日志記錄器,級別為 INFO
logger = MyLogger("my_app")

# 記錄一條 INFO 級別的日志
logger.info("This is an informational message.")

# 記錄一條 DEBUG 級別的日志
logger.debug("This is a debug message.")

# 記錄一條 ERROR 級別的日志
logger.error("This is an error message.")

# 記錄一條 WARNING 級別的日志
logger.warning("This is a warning message.")

# 記錄一條 ERROR 級別的日志,并附帶額外的參數(shù)和關(guān)鍵字參數(shù)
logger.error("An error occurred.", "Extra info", custom_param="Custom value")

# 記錄一條 ERROR 級別的日志,同時記錄異常信息
try:
    result = 1 / 0
except Exception as e:
    logger.exception("An error occurred while performing a calculation.")

截圖如下:

在這里插入圖片描述

整體logger文件如下:

在這里插入圖片描述

以上就是Python自定義logger模塊的實例代碼的詳細(xì)內(nèi)容,更多關(guān)于Python自定義logger模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python字典多鍵值及重復(fù)鍵值的使用方法(詳解)

    python字典多鍵值及重復(fù)鍵值的使用方法(詳解)

    下面小編就為大家?guī)硪黄猵ython字典多鍵值及重復(fù)鍵值的使用方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個才參考。一起跟隨小編過來看看吧
    2016-10-10
  • Python 實現(xiàn)遞歸法解決迷宮問題的示例代碼

    Python 實現(xiàn)遞歸法解決迷宮問題的示例代碼

    這篇文章主要介紹了Python 實現(xiàn)遞歸法解決迷宮問題的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python3結(jié)合openpyxl庫實現(xiàn)excel操作的實例代碼

    python3結(jié)合openpyxl庫實現(xiàn)excel操作的實例代碼

    這篇文章主要介紹了python3結(jié)合openpyxl庫實現(xiàn)excel操作的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • 使用Matplotlib繪制不同顏色的帶箭頭的線實例

    使用Matplotlib繪制不同顏色的帶箭頭的線實例

    這篇文章主要介紹了使用Matplotlib繪制不同顏色的帶箭頭的線實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 基于Django與ajax之間的json傳輸方法

    基于Django與ajax之間的json傳輸方法

    今天小編就為大家分享一篇基于Django與ajax之間的json傳輸方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 使用vscode搭建pywebview集成vue項目實踐

    使用vscode搭建pywebview集成vue項目實踐

    這篇文章主要介紹了使用vscode搭建pywebview集成vue項目實踐,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Python實現(xiàn)的微信紅包提醒功能示例

    Python實現(xiàn)的微信紅包提醒功能示例

    這篇文章主要介紹了Python實現(xiàn)的微信紅包提醒功能,結(jié)合實例形式分析了Python使用微信模塊itchat實現(xiàn)微信紅包提醒操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • pycharm中cv2的package安裝失敗問題及解決

    pycharm中cv2的package安裝失敗問題及解決

    這篇文章主要介紹了pycharm中cv2的package安裝失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python中super的用法實例

    Python中super的用法實例

    這篇文章主要介紹了Python中super的用法實例,本文對比了普通繼承和super繼承的相關(guān)內(nèi)容,從運(yùn)行結(jié)果上看,普通繼承和super繼承是一樣的,但是其實它們的內(nèi)部運(yùn)行機(jī)制不一樣,這一點在多重繼承時體現(xiàn)得很明顯,需要的朋友可以參考下
    2015-05-05
  • Python實戰(zhàn)之手把手教你寫一個帶界面的照片按日期歸檔與清理工具

    Python實戰(zhàn)之手把手教你寫一個帶界面的照片按日期歸檔與清理工具

    這篇文章主要為大家詳細(xì)介紹了如何將利用?Python?和?wxPython?圖形界面庫,編寫一個自動化的工具,不僅能按拍攝日期自動歸檔媒體文件,還能在校驗成功后安全地將源文件移入回收站,感興趣的小伙伴可以了解下
    2025-11-11

最新評論

特克斯县| 屏边| 宣汉县| 收藏| 昔阳县| 原平市| 河源市| 甘孜县| 太和县| 林甸县| 基隆市| 临猗县| 张家口市| 绵阳市| 鸡东县| 策勒县| 抚松县| 美姑县| 平罗县| 和政县| 上犹县| 孝昌县| 昌平区| 绥滨县| 灵山县| 剑阁县| 广南县| 吴忠市| 涟源市| 沂源县| 隆林| 南投市| 济源市| 西乌珠穆沁旗| 光山县| 兴安县| 磐安县| 凤庆县| 巴中市| 霍林郭勒市| 临猗县|