溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何制作一個(gè)簡單的Python項(xiàng)目

發(fā)布時(shí)間:2021-06-12 11:33:20 來源:億速云 閱讀:609 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)如何制作一個(gè)簡單的Python項(xiàng)目的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

通過定義明確,信息量大且結(jié)構(gòu)方便的日志,調(diào)試和跟蹤應(yīng)用程序執(zhí)行的理想方式。

它們是任何編程語言(不僅僅是Python)中任何大型,中型或大型項(xiàng)目必不可少的組成部分。

關(guān)于Python日志記錄庫,大部分開發(fā)人員都善于解釋如何設(shè)置一個(gè)記錄系統(tǒng)用于一個(gè)Python腳本。但是,幾乎找不到如何設(shè)置Python日志記錄庫以在整個(gè)應(yīng)用程序范圍內(nèi)使用,以及如何在所有項(xiàng)目模塊中舒適地正確集成和共享日志記錄信息的解釋器。

在本文中,我將分享我的個(gè)人日志記錄模板,您可以輕松地將其用于具有多個(gè)模塊的任何項(xiàng)目。

讓我們開始吧!

制作一個(gè)簡單的Python項(xiàng)目

首先讓我們現(xiàn)在開始初始化一個(gè)簡單的項(xiàng)目,創(chuàng)建一個(gè)名為“ MyAwesomeProject  ”的文件夾,在其中創(chuàng)建一個(gè)名為的新Python文件app.py。

這將是我們應(yīng)用程序的起點(diǎn),我將使用這個(gè)項(xiàng)目來構(gòu)造我正在談?wù)摰哪0宓囊粋€(gè)簡單的工作示例。

繼續(xù)并在VSCode(或您喜歡的任何編輯器)中打開您的項(xiàng)目。

現(xiàn)在,讓我們?yōu)閼?yīng)用程序級別的日志記錄設(shè)置創(chuàng)建一個(gè)新模塊,我們將其稱為logger。

創(chuàng)建應(yīng)用程序級別記錄器

這是模板的主要部分,我們創(chuàng)建一個(gè)名為logger.py的新文件。

讓我們定義一個(gè)根記錄器,并將其用于初始化我們的應(yīng)用程序級記錄器。是時(shí)候編寫一些代碼了!

導(dǎo)入一些和我們需要的應(yīng)用名稱:

import logging import sys APP_LOGGER_NAME = 'MyAwesomeApp'

我們將在app.py中調(diào)用的函數(shù):

def setup_applevel_logger(logger_name = APP_LOGGER_NAME, file_name=None):      logger = logging.getLogger(logger_name)     logger.setLevel(logging.DEBUG)     formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")     sh = logging.StreamHandler(sys.stdout)     sh.setFormatter(formatter)     logger.handlers.clear()     logger.addHandler(sh)     if file_name:         fh = logging.FileHandler(file_name)         fh.setFormatter(formatter)         logger.addHandler(fh)     return logger

我們將使用預(yù)定義的DEBUG級別定義記錄器,并使用Formatter構(gòu)造記錄消息。然后我們將其分配給流處理程序,以便將消息寫入控制臺(tái)。

接下來,我們還確保包含一個(gè)文件,我們也可以在其中另外存儲(chǔ)所有日志消息,這是通過記錄FileHandler來完成的。

最后,我們返回記錄器。

此時(shí)需要另一個(gè)功能,它將確保我們的模塊可以在需要時(shí)調(diào)用記錄器。定義一個(gè)get_logger函數(shù)。

def get_logger(module_name):        return logging.getLogger(APP_LOGGER_NAME).getChild(module_name)

另外,為了將此模塊用作軟件包,我們可以選擇創(chuàng)建一個(gè)名為logger的文件夾,并將此文件放入其中。如果這樣做,我們還需要在文件夾中包含___init__.py文件,然后執(zhí)行

from .logger import *

以確保我們可以從包中導(dǎo)入模塊,現(xiàn)在需要完成主要設(shè)置!

設(shè)置我們的模塊級日志

可以完成一個(gè)簡單的模塊來測試我們的記錄器,以更好地了解模板。讓我們將其定義為一個(gè)簡單的module.py。

import logger log = logger.get_logger(__name__) def multiply(num1, num2): # just multiply two numbers     log.debug("Executing multiply function.")     return num1 * num2

現(xiàn)在,該模塊可以訪問記錄器,并應(yīng)顯示帶有適當(dāng)模塊名稱的消息。

讓我們現(xiàn)在進(jìn)行測試!

運(yùn)行我們的腳本并測試記錄器

現(xiàn)在,我們構(gòu)建app.py。

import logger log = logger.setup_applevel_logger(file_name = 'app_debug.log') import mymodule log.debug('Calling module function.') mymodule.multiply(5, 2) log.debug('Finished.')

現(xiàn)在,確認(rèn)您的目錄包含以下文件:

如何制作一個(gè)簡單的Python項(xiàng)目

項(xiàng)目文件夾

最后,只需通過以下命令運(yùn)行腳本:

python3 app.py

您應(yīng)該得到類似以下的輸出:

如何制作一個(gè)簡單的Python項(xiàng)目

并且您的目錄結(jié)構(gòu)也應(yīng)該更改為包括新的日志文件,繼續(xù)檢查其內(nèi)容!

如何制作一個(gè)簡單的Python項(xiàng)目

日志文件出現(xiàn)!

以上我們成功的搭建了Python日志記錄庫。

感謝各位的閱讀!關(guān)于“如何制作一個(gè)簡單的Python項(xiàng)目”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI