成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

應(yīng)用程序Python的日志記錄模板

開(kāi)發(fā) 后端
通過(guò)定義明確,信息量大且結(jié)構(gòu)方便的日志,調(diào)試和跟蹤應(yīng)用程序執(zhí)行的理想方式。它們是任何編程語(yǔ)言(不僅僅是Python)中任何大型,中型或大型項(xiàng)目必不可少的組成部分。

 [[398641]]

本文轉(zhuǎn)載自微信公眾號(hào)「區(qū)塊鏈研究實(shí)驗(yàn)室」,作者鏈三豐。轉(zhuǎn)載本文請(qǐng)聯(lián)系區(qū)塊鏈研究實(shí)驗(yàn)室公眾號(hào)。  

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

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

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

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

讓我們開(kāi)始吧!

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

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

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

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

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

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

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

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

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

  1. import logging 
  2. import sys 
  3. APP_LOGGER_NAME = 'MyAwesomeApp' 

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

  1. def setup_applevel_logger(logger_name = APP_LOGGER_NAME, file_name=None):  
  2.     logger = logging.getLogger(logger_name) 
  3.     logger.setLevel(logging.DEBUG) 
  4.     formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s"
  5.     sh = logging.StreamHandler(sys.stdout) 
  6.     sh.setFormatter(formatter) 
  7.     logger.handlers.clear() 
  8.     logger.addHandler(sh) 
  9.     if file_name: 
  10.         fh = logging.FileHandler(file_name) 
  11.         fh.setFormatter(formatter) 
  12.         logger.addHandler(fh) 
  13.     return logger 

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

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

最后,我們返回記錄器。

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

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

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

  1. from .logger import * 

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

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

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

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

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

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

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

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

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

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

項(xiàng)目文件夾

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

  1. python3 app.py 

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

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

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

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

責(zé)任編輯:武曉燕 來(lái)源: 區(qū)塊鏈研究實(shí)驗(yàn)室
相關(guān)推薦

2011-07-20 16:59:07

2012-05-29 10:04:08

2017-06-09 08:57:57

Java存儲(chǔ)移動(dòng)應(yīng)用

2010-08-12 21:20:45

2009-08-14 18:04:59

C#Windows應(yīng)用

2023-07-06 07:45:07

Log4Net.NET

2021-09-26 08:30:31

Python應(yīng)用程序代碼

2010-02-22 10:27:44

Python應(yīng)用程序

2010-02-26 14:40:15

Python應(yīng)用程序

2010-03-01 17:53:22

Python應(yīng)用程序

2010-02-01 14:05:03

2010-02-22 17:46:57

Python應(yīng)用程序

2011-12-07 12:01:31

ibmdw

2010-02-02 15:37:11

2010-02-26 11:08:29

Python應(yīng)用程序

2009-12-30 15:47:14

ADO 記錄集

2010-02-03 15:58:53

Python應(yīng)用程序

2010-02-22 10:38:09

Python應(yīng)用程序

2012-06-07 09:15:14

ibmdw

2011-08-08 13:35:50

Web應(yīng)用WANWeb應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 伊人久久大香线 | 看羞羞视频免费 | 夜夜骑天天干 | 香蕉视频1024 | 精品在线一区 | 韩国成人在线视频 | 91极品欧美视频 | 在线视频第一页 | 久久综合一区 | 草草视频在线免费观看 | 日韩影院在线 | 成人精品一区 | 国产精品久久久久国产a级 欧美日韩国产免费 | 欧美在线网站 | 国产羞羞视频在线观看 | 国产精品久久久久久久岛一牛影视 | 一级毛片观看 | 精品日韩一区 | a毛片视频网站 | 午夜在线精品偷拍 | 久久91av | 中文字幕一二三区 | 亚州成人 | 日韩国产中文字幕 | 亚洲欧美第一视频 | 手机av在线 | 精品日韩一区二区三区av动图 | 国产精品99久久久久久久久久久久 | 欧美一区在线看 | 日韩在线观看一区 | 国产露脸对白88av | 毛片免费观看视频 | 97久久精品午夜一区二区 | 日韩中文电影 | 中文av在线播放 | 国产精品日韩欧美一区二区 | 国产三级一区二区三区 | 日韩欧美一区二区三区免费看 | 国产精品高清一区二区 | 狠狠久久| 精品二三区 |