首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从芹菜印印中移除时间戳?

如何从芹菜印印中移除时间戳?
EN

Stack Overflow用户
提问于 2015-11-05 15:09:05
回答 2查看 301关注 0票数 7

在运行芹菜工人时,pprint输出的每一行总是以时间戳作为前缀,并且正在被剥离。这使得它很难读懂:

代码语言:javascript
复制
[2015-11-05 16:01:12,122: WARNING/Worker-2] {
[2015-11-05 16:01:12,122: WARNING/Worker-2] u'key1'
[2015-11-05 16:01:12,122: WARNING/Worker-2] :
[2015-11-05 16:01:12,122: WARNING/Worker-2] 'value1'
[2015-11-05 16:01:12,122: WARNING/Worker-2] ,
u'_id':
[2015-11-05 16:01:12,122: WARNING/Worker-2] ObjectId('55fff3b74322c53d18ae4687')
...

有没有办法告诉芹菜不要格式化pprint的输出?

更新:

这个问题提出得有点不对。所需的输出如下所示:

代码语言:javascript
复制
[2015-11-05 16:01:12,122: WARNING/Worker-2] 
{
    u'key1': 'value1',
    u'_id': ObjectId('55fff3b74322c53d18ae4687'),
    ...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-13 10:31:00

正如@xbirkettx所提到的,输出格式在CELERYD_LOG_FORMAT设置中被取消,该设置默认为[%(asctime)s: %(levelname)s/%(processName)s] %(message)s

所以,在你的设置中:

代码语言:javascript
复制
CELERYD_LOG_FORMAT = '[%(levelname)s/%(processName)s] %(message)s'

任务中的记录器还有一个特殊设置,默认设置为:

CELERYD_TASK_LOG_FORMAT =%(提升时间)s:%(级别名称)s/%(ProcessName)%(消息)s

删除asctime键以消除时间戳。CELERYD_TASK_LOG_FORMAT上的文档。

更新

来自文档

您还可以使用print(),因为写入标准输出/错误的任何内容都将重定向到日志记录系统(可以禁用此功能,请参见CELERY_REDIRECT_STDOUTS)。

因此,与其调用pprint.pprint,不如用pprint.pformat格式化字符串,然后将其记录下来。

代码语言:javascript
复制
@periodic_task(run_every=timedelta(seconds=10))
def pprint_dict2():
    import pprint
    values = {
        u'key1': 'value1',
        u'_id1': "ObjectId('55fff3b74322c53d18ae4687')",
        u'key2': 'value2',
        u'_id2': "ObjectId('55fff3b74322c53d18ae4687')",
        u'key3': 'value3',
        u'_id3': "ObjectId('55fff3b74322c53d18ae4687')",
        u'key4': 'value4',
        u'_id3': "ObjectId('55fff3b74322c53d18ae4687')",
    }
    s = pprint.pformat(values, width=1)
    print(s)  # or even better logger.info(...)

输出:

代码语言:javascript
复制
[WARNING/Beat] {u'_id1': "ObjectId('55fff3b74322c53d18ae4687')",
 u'_id2': "ObjectId('55fff3b74322c53d18ae4687')",
 u'_id3': "ObjectId('55fff3b74322c53d18ae4687')",
 u'key1': 'value1',
 u'key2': 'value2',
 u'key3': 'value3',
 u'key4': 'value4'}
票数 4
EN

Stack Overflow用户

发布于 2015-11-13 09:59:10

试着玩CELERYD_LOG_FORMAT

http://docs.celeryproject.org/en/latest/configuration.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33548095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档