正如 @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 http://docs.celeryproject.org/en/latest/configuration.html#celeryd-log-format.
Update
来自docs http://docs.celeryproject.org/en/latest/userguide/tasks.html#logging:
您还可以使用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(...)
Output:
[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'}