2012-04-08 154 views
6

我芹菜日誌截斷一致(不是很)長的錯誤信息,如:芹菜截斷日誌消息

[2012-04-08 04:53:10,084: INFO/MainProcess] Task mainapp.tasks.async_submitter[2df2fe93-156b-4944-9ecf-c55ba53e8aaa] succeeded in 0.190640926361s: 'An error occurred during the submission of... 

不用說,這將刪除記錄的一半的目的。我怎樣才能阻止這種情況發生?

我正在linux上用django-celery(通過django-supervisor和主管)運行芹菜。

+1

我看來像截斷在['工人發生/ job.py:repr_result()'](https://github.com/celery/celery/blob/master/celery/worker/job.py#L508)。這將需要一個'maxlen'參數,但在[地方調用此方法](https://github.com/celery/celery/blob/master/celery/worker/job.py#L394)時,' maxlen'說法是從來沒有使用過 - 所以很遺憾,我不認爲有配置這種:-( – 2013-11-09 13:02:53

+0

@LukasGraf感謝的一種方式。 – Marcin 2013-11-09 14:18:40

回答

0

任務,按設計返回,應該用於代碼中的進一步處理,這就是爲什麼開發人員可能自由截斷日誌,也是因爲返回可能是相當大的詳細結果,並且可能使日誌無法讀取信息輸出。 當然,我可能是錯的,但因爲我有芹菜工作我總是發現這個邏輯正確,從不打擾我。 你的情況,我認爲很有意義只是logger.info返回之前記錄消息(不會被截斷),如果你正在返回的消息實際上是沒有必要進行進一步的處理,但只在記錄日誌的目的只是不」 T迴流的任意值。

1

不幸的是,Celery默認會截斷消息。

版本3.1.73.1.9這似乎是可以通過打補丁模塊的全球調整這個限制:

import celery.worker.job 

celery.worker.job.RESULT_MAXLEN = 1048576 # 1 Mib