2015-05-21 2 views
2

Twisted недавно вышел с новым протоколирующим модулем: twisted.logger. Я прочитал документацию [1], но мне не удалось найти, где задается фактический уровень журнала. В разделе наблюдателей журнала [2] показано, что вы можете настроить предикат для этого, если вы явно настраиваете собственные LogObservers, но я не уверен, как я должен установить уровень журнала, если я запускаю свое приложение, используя twistd, используя либо --logfile, либо --syslog.Python Twisted - Как установить уровни журналов для twisted.logger

Я что-то пропустил в документации? Может ли кто-нибудь привести короткий пример того, как я буду использовать twistd и установить уровень журнала в своем приложении, чтобы сказать: INFO?

[1] howto/logger

[2] howto/logger#provided-log-observers

ответ

1

излучающие на различных уровнях журнала осуществляется через

Новый модуль был добавлен таким образом, предназначается, чтобы сохранить существующие различные методы эмиттера (log.debug, log.warn и т.д.) функциональность точно такая же, как и раньше, поэтому наблюдатели журнала используют twistd так же, как и раньше, и пока не настроены на фильтрацию на основе уровней журнала.

Построение подобных функций в twistd, а также другие положительные эффекты, такие как ведение журнала сериализованных данных JSON вместо текста (который затем может быть проанализирован и проверен программным обеспечением), все еще готовятся.

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

Здесь есть большой потенциал, например, возможность изменять уровни журналов, которые передаются для определенных модулей во время выполнения, что, вероятно, выходит за рамки для параметров командной строки twistd, но может быть изменено пользовательским (например, веб-интерфейс или имеющие только определенные типы событий в текстовый файл журнала и другие, отправленные по электронной почте и т. д.

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

+2

Установка уровня журнала - довольно обычная и простая вещь. Там должен быть рекомендованный способ сделать это для скрученных приложений. – Chris

+0

FilteringLogObserver требует, чтобы я передал ему наблюдателя. Как передать его наблюдателю, что означает «какой бы твист не собирался делать, прежде чем я добавил фильтр»? –

Смежные вопросы