数据工厂系列(2)添加日志

402 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

大家好~我是小方,欢迎大家关注笋货测试笔记体完记得俾个like

接上篇

上篇我们讲了后端项目的初始化,没有看的小伙伴可以回头复习一下哈~今天我们来给后端服务添加日志

日志模块选用

  • logging
    • 这个模块是我写接口自动化经常用到的,里面api挺齐全,挺强大的
  • logbook
    • 这个模块我一开始也不知道,直到我看到无敌哥的pity,里面用的是logbook,api调用挺简洁的果断抄过来了

编写日志工具类

日志属于工具类,理所当然的就在app/utils目录下

import logbook
from logbook.more import ColorizedStderrHandler
from config import FilePath


class Log(object):

    def __init__(self, name='FunDataFactory', filename=FilePath.LOG_NAME):
        """
        :param name: 模块名
        :param filename: 文件名称
        """
        self.logger = logbook.Logger(name)
        self.logger.handlers = []
        # 日志打印到文件
        log_file = logbook.FileHandler(filename, encoding='utf-8')
        # 日志打印到控制台
        log_std = ColorizedStderrHandler(bubble=True)
        logbook.set_datetime_format("local")
        self.logger.handlers.append(log_std)
        self.logger.handlers.append(log_file)


    def info(self, *args, **kwargs):
        return self.logger.info(*args, **kwargs)

    def error(self, *args, **kwargs):
        return self.logger.error(*args, **kwargs)

    def warning(self, *args, **kwargs):
        return self.logger.warning(*args, **kwargs)

    def debug(self, *args, **kwargs):
        return self.logger.debug(*args, **kwargs)

我们先初始化日志类,name为模块名,filename为文件名,目前logbook中处理方式(handlers)有两种,输出到文件中和控制台中,接着将常用的方法简单套一下娃,有条件的同学,可以自行改一下输出格式~

本地测试一下

if __name__ == '__main__':
    test_log = Log('这是测试模块')
    test_log.info('pity牛逼~')

小技巧

还记得我们编写config.py的时候,存放日志的目录加了一段特殊的代码?

# 不存在logs目录时,自动创建目录
    if not os.path.isdir(LOG_FILE_PATH): os.mkdir(LOG_FILE_PATH)

解释一下因为我们在上传代码的时候,.gitignore默认过滤不上传*.log的文件,相当于logs目录下不会存在文件,git push时,会过滤空目录~所以你们clone的项目,都不会存在logs目录,因此这段代码必不可少~~~应该不会翻车~~

引入日志

现在我们给之前的路由函数添加log吧~ 这里修改的是main.py文件哦~

from app import fun
from app.utils.logger import Log
@fun.get("/")
async def root():
    logger = Log('测试模块')
    logger.info('欢迎来到方总的数据工厂~')
    return {"message": "Hello World"}

浏览器访问http://127.0.0.1:8080/日志功能搞定done~

总结

今天内容不算多,主要是日志功能的添加,项目地址:github.com/JokerChat/F… 今天的代码也提交了哦,记得敲一下,下期就要开始写接口了哦~