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如何在jprogressbar上添加文本?   java生成30到32位之间的随机数   我想从我自己的服务器而不是java worldwind中的nasa服务器获取数据   jsp中带有外部java文件的html计数器   java如何找到运行Servlet的主机和端口   我怎么能看到数学。java中的cos方法计算平方根?   java这个docker run命令做什么?   java如何在将表单提交到servlet后将原始JSP保存在URL中?   如何在Java中访问Arraylist中的字典数据?   java JPA如果我有一个实体被用作复合键,那么级联是否也构成复合键的一部分?   连接Java:文件读取/添加到文件程序时未按预期工作(逻辑错误)   java从Android向PLC发送布尔值   java Get build。gradle文件作为一个。类文件   Youtube API V3 Java无需调用浏览器即可上传视频   java如何在Unittest中测试StackOverflower错误   实现方法中的java异常处理   java这个::instanceMethod在java8中用作方法参数有什么用途   java偶尔会获得javax。邮政使用javamail阅读gmail电子邮件时的FolderClosedException