本扬蟒蛇记录者

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

变更日志

0.1.0/2016-03-15

  • #2添加邦扬 格式化程序(@jalpedrinha)

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

推荐PyPI第三方库


热门话题
java为什么用Jsoup解析后内容不一样   java save方法无法使用Hibernate+Spring保存对象   java如何从JaxWs WebMethod发送Http状态为202的空响应   Java BuffereImage“块”模糊问题   java中的模板CAL集   java MyBatis deleteinsertupdate在一个查询中   在执行下一个方法之前,java将等待线程执行结束   java JTextField无法保存enter字符   java回滚撤消重做   java解析异常的最佳实践。toString()来执行一些逻辑   在Java中完成类的精确副本的构造函数的单元测试   java我无法从LinkedList类调用客户端中的方法   java启动RxJava2可观察。没有初始延迟的间隔()?   添加更多参数时java Mybatis插入失败