запись информации о программе в файл в скрученном виде

Я написал код в скрученном виде. Мне нужно записать информацию журнала, когда у нас есть вызов d.addErrback (on_failure).

из журнала импорта twisted.python log.startLogging (open ('/ home / crytek.etl / foo.log', 'w'))

def on_failure (сбой): log.msg (сбой)

d.addErrback (on_failure)

Это правильный способ реализации? Я не получаю никаких значений, записанных в файл. Может кто-нибудь посоветовать, как это можно реализовать?


person user2479840    schedule 08.07.2013    source источник


Ответы (1)


Вероятно, вы захотите рассмотреть возможность открытия файла журнала в режиме добавления. В противном случае при каждом запуске приложения вы стираете все свои старые журналы. Это может создать впечатление, что сообщения журнала, которые вы ожидаете увидеть, не регистрируются.

from twisted.python import log
log.startLogging(open('/home/crytek.etl/foo.log', 'a'))

Вы также должны регистрировать сбои, используя log.err вместо log.msg

def on_failure(failure):
    log.err(failure)

И вы можете сделать это проще, поскольку on_failure имеет точно такую ​​же подпись, что и log.err. Просто пиши:

d.addErrback(log.err)

Кроме того, мне понравилось, что log.err не имеет точно такую ​​же подпись, как on_failure. Лучше, если он принимает второй аргумент, который используется для представления заголовка сбоя в файле журнала. Вы можете использовать это так:

d.addErrback(log.err, "Frobbing the widget failed")

Это представит сообщение «Не удалось заморозить виджет» вместе с ошибкой в ​​файле журнала.

person Jean-Paul Calderone    schedule 08.07.2013
comment
Отлично, рад, что помог. :) Если вам нравится ответ, нажмите кнопку, чтобы принять его. И если вам это очень нравится, вы также можете проголосовать за него. :) - person Jean-Paul Calderone; 12.07.2013