излучающие на различных уровнях журнала осуществляется через
Новый модуль был добавлен таким образом, предназначается, чтобы сохранить существующие различные методы эмиттера (log.debug
, log.warn
и т.д.) функциональность точно такая же, как и раньше, поэтому наблюдатели журнала используют twistd
так же, как и раньше, и пока не настроены на фильтрацию на основе уровней журнала.
Построение подобных функций в twistd
, а также другие положительные эффекты, такие как ведение журнала сериализованных данных JSON вместо текста (который затем может быть проанализирован и проверен программным обеспечением), все еще готовятся.
В то же время вы можете настроить собственные наблюдатели журнала, которые это делают, но для этого требуется написать код. Вы можете написать наблюдателя, который проверяет ключ log_level
на входящих событиях, или использовать FilteringLogObserver
, который сделает это для вас и перенаправляет фильтрованные события вашему наблюдателю. Документы, на которые вы ссылались выше, должны помочь вам начать с этого, если вы хотите использовать это сейчас.
Здесь есть большой потенциал, например, возможность изменять уровни журналов, которые передаются для определенных модулей во время выполнения, что, вероятно, выходит за рамки для параметров командной строки twistd
, но может быть изменено пользовательским (например, веб-интерфейс или имеющие только определенные типы событий в текстовый файл журнала и другие, отправленные по электронной почте и т. д.
В основном мы сосредоточились на том, чтобы не нарушать существующих клиентов Twisted, но ожидайте большего и улучшенная интеграция с этой новой функциональностью с течением времени.
Установка уровня журнала - довольно обычная и простая вещь. Там должен быть рекомендованный способ сделать это для скрученных приложений. – Chris
FilteringLogObserver требует, чтобы я передал ему наблюдателя. Как передать его наблюдателю, что означает «какой бы твист не собирался делать, прежде чем я добавил фильтр»? –