前言
本章節介紹以下封裝日志和緩存類。
在測試執行的過程中我們需要日志去輸出關鍵信息,並能進行實時的查看。可以理解為我們需要監聽我們的腳本在做什么,以及做到那一步。
緩存其實就是一個變量池,把我們不需要存儲的一些臨時信息存儲起來,比如臨時的變量,傳遞的參數等臨時信息。
注意:鄙人用的編輯器是VScode。測試有問題,可以先換成和我一樣試試。
封裝日志
打開utils/logger.py文件,這個utils的意思是一個工具包的意思。在這個里面我們主要存放可以獨立運行的工具模塊。比如日志文件就是一個可以獨立運行的。打開之后我們輸入以下的內容:
# -*- coding: utf-8 -*-
__author__ = 'wxhou'
__email__ = '1084502012@qq.com'
"""
日志類
"""
import os
import logging
from logging.handlers import RotatingFileHandler
def init_logger():
"""初始化日志"""
basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
debug_file = os.path.join(basedir, 'logs', 'server.log')
logger_formatter = logging.Formatter(
'%(levelname)s %(asctime)s [%(filename)s:%(lineno)s] %(thread)d %(message)s')
# debug
logger_debug = logging.getLogger('apitest')
handler_debug = RotatingFileHandler(debug_file,
encoding='utf-8',
maxBytes=20 * 1024 * 1024,
backupCount=10)
handler_debug.setFormatter(logger_formatter)
logger_debug.setLevel(logging.DEBUG)
logger_debug.addHandler(handler_debug)
return logger_debug
logger = init_logger()
if __name__ == '__main__':
logger.debug("debug")
logger.info("info")
logger.warning('warning')
logger.error("error")
logger.critical('critical')
下面一些日志輸入示例。我們來執行一下。

可以看到成功的在日志文件中寫入了新的信息。
緩存
是的你沒看錯,我給它起的名字就叫緩存,其實內部組成本質就是一個python字典。而不是你想的redis這種。
打開common/cache.py文件,我們輸入以下內容。
# -*- coding: utf-8 -*-
__author__ = 'wxhou'
__email__ = '1084502012@qq.com'
"""
緩存類
"""
from collections import UserDict
class CachePool(UserDict):
"""全局變量池"""
def get(self, key, default=None):
return self.data.get(key, default)
def set(self, key, value = None):
self.data.setdefault(key, value)
def has(self, key):
return key in self.data
def __len__(self):
return len(self.data)
def __bool__(self):
return bool(self.data)
cache = CachePool()
if __name__ == '__main__':
cache.set('name', 'wxhou')
print(len(cache))
print(cache.get('name'))
我們執行測試一下:

可以看到沒有問題。通過這個字典我們把一些臨時的信息放在這個里面,因為只是示例項目,用redis顯得有些麻煩,采用這種方式更為簡便一些。
關於日志和緩存封裝的章節就介紹到這里。
