簡體   English   中英

如何從celery pprint輸出中刪除時間戳?

[英]How to remove timestamps from celery pprint output?

當運行芹菜工作者時, pprint輸出的每一行總是以時間戳為前綴並且也被剝離。 這使得它非常難以理解:

[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的輸出?

更新:

這個問題有點不對勁。 所需的輸出看起來像這樣:

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

正如@xbirkettx所提到的那樣,輸出格式在CELERYD_LOG_FORMAT設置中定義,默認為[%(asctime)s: %(levelname)s/%(processName)s] %(message)s

所以,在你的設置中:

CELERYD_LOG_FORMAT = '[%(levelname)s/%(processName)s] %(message)s'

任務記錄器還有一個特殊設置,默認為:

 CELERYD_TASK_LOG_FORMAT = [%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)s 

刪除asctime鍵以刪除時間戳。 關於CELERYD_TASK_LOG_FORMAT文檔。

更新

來自文檔

您也可以使用print() ,因為寫入標准輸出/ -err的任何內容都將被重定向到日志記錄系統(您可以禁用它,請參閱CELERY_REDIRECT_STDOUTS )。

因此,不是調用pprint.pprint ,最好使用pprint.pformat格式化字符串然后記錄它。

@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(...)

輸出:

[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'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM