使用MongoDB简化集中日志记录

mongolog的Python项目详细描述


Travis CI statusLatest PyPI versionNumber of PyPI downloads
Info:MongoDB python logging handler. Python centralized logging made easy.
Author:Andrei Savu
Maintainer:Jorge Puente Sarrín

设置

在使用此处理程序进行日志记录之前,您需要创建一个 MongoDB服务器上的集合。

您可以使用mongodb shell中的以下命令来执行此操作:

> use mongolog
> db.createCollection('log', {capped:true, size:100000})

…你准备好了。在log集合上运行stats()函数 应该显示如下内容:

> db.log.stats()
{
        "ns" : "mongolog.log",
        "count" : 0,
        "size" : 0,
        "storageSize" : 102400,
        "numExtents" : 1,
        "nindexes" : 1,
        "lastExtentSize" : 102400,
        "paddingFactor" : 1,
        "systemFlags" : 1,
        "userFlags" : 0,
        "totalIndexSize" : 8176,
        "indexSizes" : {
                "_id_" : 8176
        },
        "capped" : true,
        "max" : 2147483647,
        "ok" : 1
}

用法

>>> import logging
>>> from mongolog.handlers import MongoHandler
>>>
>>> log = logging.getLogger('demo')
>>> log.setLevel(logging.DEBUG)
>>> log.addHandler(MongoHandler.to(db='mongolog', collection='log'))
>>>
>>> log.debug('Some message')

查看samples文件夹以了解更多详细信息。

为什么要集中日志记录?

  • 简单的故障排除:
    • 知道为什么吗?快速准确。
    • 用于在系统关闭时进行故障诊断。
    • 消除了日志信息丢失的风险。
  • 资源跟踪。
  • 安全。

什么是MongoDB?

“MongoDB是一个高性能的、开源的、无模式的面向文档的 数据库。“

它可以有效地存储任意json对象。你可以在 MongoDB website

为什么MongoDB非常适合日志记录?

  • MongoDB插入可以异步完成。
  • 由于有上限的集合,旧的日志数据会自动退出lru。
  • 对这个问题来说足够快了。
  • 面向文档的/json是一种很好的日志信息格式。

MongoDB blog上阅读有关此主题的更多信息。

玩得开心!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在reducer中迭代自定义可写组件时出现java问题   属性文件中属性的java命名约定   任务链关闭的java Executor服务   java从Eclipse中的字段生成多个构造函数   java通过继承读取Json   java在不知道密钥的情况下解析json   java camel cxf如何在电子邮件中发送soap请求响应   java程序似乎跳过了if语句的一部分,在移回正确位置之前先移到else语句   测试简单的Java加密/解密inputFileName不存在   java从Jenkins REST API获取所有作业的所有构建的构建细节   java基本包装器和静态“类型”类对象   在WebSphere8.5上部署java代码   java对象相等(对象引用“=”)   java MongoDB整型字段到枚举的转换   每次我重新导入gradle时,IntelliJ都会不断重置Java设置   类型使用键或索引从Java中的数据类型检索值   在Java的列表接口中需要listIterator()和iterator()是什么?