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请求,从而导致无限递归。