从Python向Mongo DB写入日志

时间:2018-09-20 20:50:31

标签: python python-3.x mongodb mongodb-query apscheduler

我正在尝试将日志从Python写入Mongo DB。我的代码正在执行并将数据库创建为“ DSLogSummary”,但没有将条目写入集合:

from apscheduler.schedulers.blocking import BlockingScheduler
from pymongo import MongoClient
from pymongo import ASCENDING
from pytz import utc
import datetime

client = MongoClient()
db = client.DSLogSummary
collection = db.ds_jobLogEntry
collection.ensure_index([("timestamp", ASCENDING)])

def log(msg):
    entry = {}
    entry['timestamp'] = datetime.datetime.utcnow()
    entry['msg'] = msg
    collection_id = collection.insert_one(entry).inserted_id

def job_test():
    print ("Hello World")
    log('Job executed')

jobstores = {
     'mongo': {'type': 'mongodb'},
}

sched = BlockingScheduler()
sched.configure(jobstores=jobstores, timezone=utc)
sched.add_job(job_test, trigger='cron', month='*', hour='*', minute = '*', second='*/5')
sched.start()

输出为: 你好,世界 你好,世界 你好,世界 你好,世界 你好,世界 你好世界

enter image description here

1 个答案:

答案 0 :(得分:0)

根据您的用例-写日志-,我认为与MongoDB数据库相比,使用面向时间序列的数据库会更好。 [no-sql DB]

通过使用MongoDB,您将冒着数据库内部可见事件无法反映现实的风险,因为数据是异步写入的。

您可以看看herehere来了解MongoDb为什么不适用于时间序列...

对于您来说,InfluxDB可能是一个更好的选择(或Mysql