Во-первых.Не создавайте свой собственный класс Logger
.
. Просто настройте существующие классы регистратора с помощью существующих logging
инструментов настройки.
Секунда.Каждый раз, когда вы создаете свой собственный класс Logger
, вы также создаете новые обработчики и затем присоединяете новый (дублирующий) обработчик к корневому логгеру.Это приводит к дублированию сообщений.
Если у вас есть несколько модулей, которые должны (1) работать автономно и (2) также запускаться как часть более крупного составного приложения, вам необходимо это сделать.Это гарантирует, что конфигурация регистрации будет выполнена только один раз.
import logging
logger= logging.getLogger( __file__ ) # Unique logger for a, b or main
if __name__ == "__main__":
logging.basicConfig( stream=sys.stdout, level=logging.DEBUG, format='%(filename)s:%(lineno)s %(levelname)s:%(message)s' )
# From this point forward, you can use the `logger` object.
logger.info( "Hi" )