spectrum-python是spectrum(devspectrum.com)的python日志处理程序

spectrum-python的Python项目详细描述


概述

Spectrum是一个有助于 开发人员在开发或调试时过滤和筛选日志 在当地。它通过rest api、syslog或 设置为跟踪本地文件。所有这些日志记录源都很容易 根据开发人员的当前需要显示或隐藏。

这个python包使得将日志从python和/或django推送到spectrum中变得非常容易。

Python

安装python对spectrum的支持非常简单:

$ pip install spectrum-python

设置日志处理程序也同样简单:

import logging
from spectrum.handlers import Spectrum

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

spectrum = Spectrum('my-logging-sublevel')
logger.addHandler(spectrum)

for i in range(5):
    logger.info("This would be sent as INFO.my-logging-sublevel")
    logger.warn("This would be sent as WARNING.my-logging-sublevel")
    logger.debug("This would be sent as DEBUG.my-logging-sublevel")

选项

网址

要使用的rest api的ip和端口。默认为“http://0.0.0.0:9000”。如果使用多个rest api流,则必须将其重写为与流关联的正确频谱端口

子级

用于此处理程序的可选子级别。如果未给定,则默认为频谱用户界面中的“<;无标题>;”。

django

要将django项目中的所有日志记录定向到spectrum,可以使用 在您的设置中预定义消防软管日志记录配置:

# settings.py

from spectrum.django import FIRE_HOSE
LOGGING = FIRE_HOSE

如果使用芹菜,则还有一个设置要添加:

CELERYD_HIJACK_ROOT_LOGGER = False

您还可以使用fire_hose便利方法快速修改 预构建的日志配置dict:

from spectrum.django import fire_hose


LOGGING = fire_hose()

LOGGING = fire_hose(log_db=False)

LOGGING = fire_hose(levels=(
    ('my.overly.verbose.module', 'WARNING'),
    ('some.other.module', 'CRITICAL'),
)

LOGGING = fire_hose(handler_kwargs={'url': '127.0.0.1:12345'})

如果您喜欢更细粒度的方法,可以配置特定的处理程序:

# settings.py

LOGGING = {
    ...
    'filters': {
        'request_id': {
            '()': 'spectrum.filters.RequestIdFilter'
        }
    },
    'handlers': {
        'myloggername': {
            'level': 'DEBUG',
            'class': 'spectrum.handlers.RestSpectrum',
            'sublevel': 'myloggername',
            'filters': ['request_id']
        }
    }
}

确保包含request_idfilter以过滤来自另一方的频谱自身请求。否则,spectrum的请求将由python记录,这些日志将依次生成自己的spectrum请求,从而导致无限递归。

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

推荐PyPI第三方库


热门话题
如何在Java中创建固定大小的泛型数组?   javascript Paypal Braintree订阅付款   使用BufferedReader和PrintWriter实现java数据持久化?   类似于iCloud的java唯一google id   java使用网格布局和抓取组合框   java我的while循环无限运行,当我检查它时,它说while循环没有主体,而我认为它显然没有主体   java LWJGL碰撞3D OpenGL   java将Tibco RV切换到WebSphere MQ?   java如何使用Postman从curl发布REST   java是超级的,在通用通配符中是独占的吗?   在swing 1.5中,java在指定时间后自动关闭非模态对话框   java PrimeFaces饼图在JSF 2.0中不显示   java如何在Spring MVC中提供带有xml配置的默认bean实现?   java在eclipse中使用按钮关闭JFrame   java Sqoop jar已弃用   Java中的Getter方法