2012-04-08 39 views
6

Mój dziennik Seler konsekwentnie obcina (niezbyt) komunikaty o błędach, długo tak:Seler obcina wiadomości dziennika

[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... 

Nie trzeba dodawać, to usuwa połowę cel logowania. Jak mogę temu zapobiec?

Używam selera z django-selerem (przez django-supervisora ​​z superwizorem) na Linuksie.

+1

Wygląda mi na to, że dzieje się w obcięcie [ 'pracowników/job.py:repr_result()'](https://github.com/celery/celery/blob/master/celery/worker/job.py#L508). To wymagałoby argumentu 'maxlen', ale w [miejscu, w którym ta metoda jest nazywana] (https://github.com/celery/celery/blob/master/celery/worker/job.py#L394),' argument maxlen' nigdy nie jest używany - więc niestety nie sądzę, żeby był jakiś sposób skonfigurowania tego :-( –

+0

@LukasGraf Dzięki. – Marcin

Odpowiedz

0

Zadanie, zwracanie przez projekt, powinno być używane do dalszego przetwarzania w kodzie i dlatego prawdopodobnie deweloper skorzystał z prawa do obcinania logu, również dlatego, że zwroty mogą być dość dużym wynikiem opracowania i mogą uczynić nieczytelnym dziennik dane wyjściowe. Oczywiście, mogę się mylić, ale odkąd pracuję z Selerem, zawsze uważałem tę logikę za poprawną i nigdy mi nie przeszkadzałem. W twoim przypadku myślę, że sensowne jest Logowanie wiadomości tuż przed zwrotem za pomocą logger.info (która nie zostanie obcięta) i jeśli wiadomość, którą powracasz, nie jest faktycznie potrzebna do dalszego przetwarzania, ale tylko do celów rejestrowania, po prostu nie " t zwraca dowolną wartość.

1

Niestety, Seler będzie domyślnie skracał wiadomości tak.

Od wersji 3.1.7do 3.1.9 wydaje się możliwe, aby dostosować ten limit przez łatanie moduł na globalny:

import celery.worker.job 

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