Twiggy日志库的处理程序和帮助程序。
twiggy-goodies的Python项目详细描述
在这里你会发现一些有用的插件[twiggy],Python日志。 这些插件有助于在第三方库中使用twiggy 使用standart库的[日志记录][]。
主要目标是创建方便的日志项写入方式 它们按某个请求标识符分组。已经很脆弱了 通过它的fields方法来支持它,但有时它也是 不方便传递记录器对象。这就是为什么我 从[logbook][]中创建线程本地记录器堆栈的想法 为Twiggy实现。
下面是如何使用它的示例:
from twiggy_goodies.setup import setup_logging from twiggy_goodies.threading import log
- def some_function():
- log.info(‘inner function does not accept logger’) log.info(‘but uses same field as caller’)
setup_logging(None)
log.info(‘before request’)
- with log.fields(request_id=’foo’):
- log.info(‘bar has happened’) some_function()
log.info(‘after request, id gone’)
输出将如预期的那样:
2014-04-14T18:29:02Z:INFO:before request 2014-04-14T18:29:02Z:INFO:request_id=foo:bar has happened 2014-04-14T18:29:02Z:INFO:request_id=foo:inner function does not accept logger 2014-04-14T18:29:02Z:INFO:request_id=foo:but uses same field as caller 2014-04-14T18:29:02Z:INFO:after request, id gone
同样,可以更改记录器名称,只需替换字段上下文 经理到name。
场景后面没有黑暗魔法:
- 安装日志记录进行简单的设置并重定向所有输出 从standart日志记录到twiggy。 < <日志> > >对象将所有日志记录方法委托给最高点 线程本地堆栈上的记录器。
- 字段和名称上下文管理器只需创建一个新的 作为原始Twiggy方法的logger并将其放在线程本地 堆叠。
就这样。
其他一些糖果
- twiggy_goodies.syslog contains SysLogOutput.
- twiggy_goodies.json contains JsonOutput, useful to pass data to logstash.
- twiggy_goodies.logstash contains LogstashOutput, which sends messages directly to Logstash’s UDP port.
- twiggy_goodies.django_rq contains job decorator, which groups all messages logged from one task, using UUID.
- twiggy_goodies.django contains LogMixin class which could be mixed to any management command, to group all logged messages by single UUID.
- twiggy_goodies.django also contains LogMiddleware, to do the same as LogMixin, but for each http request.
[细枝]:https://github.com/wearpants/twiggy [日志记录]:https://docs.python.org/2/library/logging.html [行车日志]:http://pythonhosted.org//Logbook/