<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2011-12-22:1181104</id>
  <title>Блокнотик Centaur’а</title>
  <subtitle>Yuri Khan</subtitle>
  <author>
    <name>Yuri Khan</name>
  </author>
  <link rel="alternate" type="text/html" href="https://yurikhan.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://yurikhan.dreamwidth.org/data/atom"/>
  <updated>2016-09-02T13:45:50Z</updated>
  <dw:journal username="yurikhan" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2011-12-22:1181104:66683</id>
    <link rel="alternate" type="text/html" href="https://yurikhan.dreamwidth.org/66683.html"/>
    <link rel="self" type="text/xml" href="https://yurikhan.dreamwidth.org/data/atom/?itemid=66683"/>
    <title>Логировать фронт, а не уровень</title>
    <published>2016-09-02T13:45:50Z</published>
    <updated>2016-09-02T13:45:50Z</updated>
    <category term="soft"/>
    <category term="logging"/>
    <category term="usability"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">&lt;pre&gt;&lt;code&gt;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)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Что не так на этой картинке?&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;p&gt;Если ошибка в обработке задачи вызвана внешними условиями — интернет отвалился, сервер упал, место на диске где-то кончилось — то с большой вероятностью она будет повторяться, пока не починится.&lt;/p&gt;

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

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

&lt;p&gt;Design issue — продумать эквивалентность на множестве ошибок. Чтоб, с одной стороны, не спамить, а с другой — не терять полезную информацию.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=yurikhan&amp;ditemid=66683" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
