伸缩自如的Flask [day11] log with mongoDB

首先,理论上今天应该进展使用Python到写资料进mySql,但是我发现用来记录log的套件像是logging或是log4mongo不是很好用,如果只是想把log全部存在TXT文件中,也许logging是最快的,
但是呈现在网页中或是未来进行查询是比较麻烦的。而log4mongo是因为我尝试着让他能在blue_print中能执行,

from flask import current_appcurrent_app.logger.info('hot dog')

可惜并没有成功,最重要的是,多写了这篇能帮助我把天数凑到30天的机率提高一点。

下面可以分享一下目前自订义写log的function:

# !/usr/bin/python# coding:utf-8import pymongofrom datetime import datetimedef mongo_logging(info="",user='',level='debug',param=[],func_name=''):    now = datetime.now()    date_time = now.strftime("%m/%d/%Y, %H:%M:%S")    myclient = pymongo.MongoClient("mongodb://localhost:27017/")    mydb = myclient["logs"]    mycol = mydb["logs_col"]    mydict = { "info": info , "time":date_time ,'level':level,"user":user,"param":param ,"func_name":func_name}    mycol.insert_one(mydict)

跟logging比起来,比较大的差异是logging可以在basicConfig的format直接设定好是程式的哪一只执行党,
哪一个function。
而自订义使用方法,也没有很难,而且多了参数的选项:

mongo_logging(info='Bob bring some food',user=Account,level='info',param=['Account',"food"],func_name='hello()')

而将log写入DB的好处是,有办法依据条件来过滤我们想要的资讯,像是使用者权限、帐号、函数名称等等。
而网页上的呈现,一样可以使用list的型态来呈现:

list(mycol.find(myquery,{ "_id": 0}))

[day 1] 开场白[day 2] blue_print[day 3] Factory mode[day 4] JWT token[day 5] session[day 6] Jinja[day 7] Post data with Form tag[day 8] ajax with jquery[day 9] request[day 10] 将资料写进DB(pymongo)[day 11] log with mongoDB[day 12] Sql Database[day 13] 档案上传[day 14] 档案下载 及 其他传值方法[day 15] boostrap 4.6[day 16] API[day 17] Docker image化--安装篇[day 18] Docker image化--运行篇[day 19] Nginx[day 20] Docker compose[day 21] Nginx with https[day 22] pythonanywhere 部署[day 23] GCP app engine (介绍)[day 24] GCP app engine (deploy)[day 25] Flask with web cam[day 26] Flask with ML[day 27] Supervisor[day 28] Flask-Mail[day 29] Line Messaging API[day 30] 结语

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章