Логировать фронт, а не уровень

Sep 02, 2016 20:22


while not done(): task = pop(queue) try: do(task) except Exception as e: log("Cannot do %s: %s", task, e) # possibly sleep(5) # possibly push(queue, task)
Что не так на этой картинке?

Если ошибка в обработке задачи вызвана внешними условиями - интернет отвалился, сервер упал, место на диске где-то кончилось - то с большой вероятностью она будет повторяться, пока не починится.

Логи с одной и той же повторяющейся ошибкой с разными задачами читать крайне неинтересно.

Правильно - запоминать тип результата и логировать его изменение. В том числе - с ошибки на успех: «Ух ты, сервер поднялся, работаем дальше». Или так: «Помнишь того чувака с китайским IP’шником, который всё никак не мог к нам залогиниться по ssh? Так вот он таки зашёл!» 😨

Design issue - продумать эквивалентность на множестве ошибок. Чтоб, с одной стороны, не спамить, а с другой - не терять полезную информацию.
This entry was originally posted at http://yurikhan.dreamwidth.org/66683.html.

logging, soft, usability

Previous post Next post
Up