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

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

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

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

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

# !/usr/bin/python
# coding:utf-8

import pymongo
from datetime import datetime

def 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}))


<<:  Array of arrays

>>:  苹果笔记本开不了机怎麽解决?MacBook维修方案是怎样的?

连续 30 天 玩玩看 ProtoPie - Day 4

接下来要使用 ProtoPie Player 来进行分享。 如果 client 端手机或平板已经下载...

第19天 - 来试着做一个简易购物系统(3)建购物车的资料表、一点点SESSION

补充 今天来做购物车,昨天写 "购买,减少库存" 的时候,我其实几乎忘记有购物车...

[Day14] 建立订单交易API_7

更新一下get_iv这支程序 def get_iv(nonce): sha_nonce_value ...

[Day 6 ] 想发表作品,先学会使用 Github 生成静态网页吧!

前言 过去总是羡慕具有设计、美术能力的朋友们,都能累积自己的作品集,并自豪地展现给大众。我的工作属於...

《你的地图会说话? WebGIS与JavaScript的情感交织》结束,才是真正的开始。

一路走来 不知不觉已到了Day30了,这一天说长不长说短不短。 其实大概从Day5开始,就已经觉得很...