本扬蟒蛇记录者
bunyan的Python项目详细描述
Python兔眼
JSON记录器兼容 node-bunyan
获取代码
git clone git@github.com:uphold/python-bunyan.git
安装
pip install bunyan
如何设置
编程
创建一个新的日志处理程序并分配一个BunyanFormatterformatter。 在当前记录器上注册处理程序。
importbunyanimportloggingimportsyslogger=logging.getLogger()logHandler=logging.StreamHandler(stream=sys.stdout)formatter=bunyan.BunyanFormatter()logHandler.setFormatter(formatter)logger.addHandler(logHandler)logger.setLevel(logging.DEBUG)
使用dictconfig
这与上面定义的示例相同,但是使用字典 dictConfig。
LOG_CONFIG={'formatters':{'bunyan':{'()':'bunyan.BunyanFormatter'}},'handlers':{'debug':{'class':'logging.StreamHandler','formatter':'bunyan','stream':'ext://sys.stdout'},},'root':{'level':'DEBUG','handlers':['debug']},'version':1}importlogging.configlogging.config.dictConfig(config)
如何使用
设置好日志之后,Bunyan允许登录两个不同的 方法:-传统-使用字典
传统测井
字符串消息
传统的python登录允许记录字符串消息。
logger.debug("This is a log message")
这将输出:
{"name":"root","pathname":"test.py","levelname":"DEBUG","msg":"This is a log message","time":"2016-03-14T16:34:47Z","hostname":"jalpedrinha-mbp.local","level":20,"pid":41414,"v":0}
带额外字典的字符串消息
此模块通过允许额外的关键字arg扩展了此功能, 和递字典。
logger.debug("This is a log message with extra context",extra={'some':'additional data'})
输出将包括some键和值:
{"name":"root","time":"2016-03-14T16:36:12Z","some":"additional data","pathname":"test.py","msg":"This is a log message with extra context","levelname":"DEBUG","hostname":"jalpedrinha-mbp.local","level":20,"pid":41495,"v":0}
字典
此方法的工作方式类似于在不使用 字符串消息,但不是额外传递关键字参数,而是 只需将第一个位置参数作为字典传递。
logger.debug({'some':'data'})
结果是:
{"name":"root","some":"data","pathname":"test.py","msg":"","time":"2016-03-14T16:45:23Z","levelname":"DEBUG","hostname":"jalpedrinha-mbp.local","level":20,"pid":43263,"v":0}
测试
Docker合成和毒性
运行tox容器:
docker-compose up
本机
首先,安装dev-requirements
pip install -r dev-requirements.txt
然后流鼻涕:
nosetests tests