Я использую Logging (журнал импорта) для регистрации сообщений.
Внутри одного единственного модуля я регистрирую сообщения на уровне отладки (my_logger.debug('msg'));
Некоторые из этих отладочных сообщений поступают из функции function_a() и других из функции function_b(); Я хотел бы иметь возможность включать/отключать ведение журнала в зависимости от того, происходят ли они из a или из b;
Я предполагаю, что мне нужно использовать механизм фильтрации журналов.
Может кто-нибудь, пожалуйста, покажите мне, как должен быть приведен код ниже для того, чтобы делать то, что я хочу? спасибо.
import logging
logger= logging.getLogger( "module_name" )
def function_a( ... ):
logger.debug( "a message" )
def function_b( ... ):
logger.debug( "another message" )
if __name__ == "__main__":
logging.basicConfig( stream=sys.stderr, level=logging.DEBUG )
#don't want function_a() noise -> ....
#somehow filter-out function_a logging
function_a()
#don't want function_b() noise -> ....
#somehow filter-out function_b logging
function_b()
Если бы я упростил этот простой пример для большего количества модулей и более функций для каждого модуля, я был бы обеспокоен множеством регистраторов;
Могу ли я сохранить его до 1 регистратора на модуль? Обратите внимание, что сообщения журнала "структурированы", т.е. Если функция регистрирует его, выполняет некоторую работу по разбору, все они содержат префикс logger.debug( "parsing: xxx" ). Могу ли я как-то с одной строкой просто закрыть -вычет всех сообщений разбора (независимо от модуля/функции, излучающей сообщение?)