Я пытаюсь настроить некоторые протоколирования, и у меня возникает проблема. Всякий раз, когда дочерний класс использует функцию родительского класса, вместо имени регистратора дочернего класса используется имя регистратора функции родительского класса.Использовать родительский класс Имя регистратора дочернего класса
Скажем, у меня есть следующие два класса:
Родитель Класс:
import logging
logger = logging.getLogger('ParentClass')
class ParentClass:
def __init___(self):
logger.info('This is inside ParentClass')
Детский Класс:
import logging
logger = logging.getLogger('ChildClass')
class ChildClass(ParentClass):
def foo(self):
logger.info('This is inside ChildClass')
Затем я запускаю следующий сценарий:
import logging
import ParentClass
import ChildClass
# Pretend I set up logging to "example.log"
foo1 = ParentClass.ParentClass()
foo2 = ChildClass.ChildClass()
foo2.foo()
Мой журнал файл заканчивает тем, как:
INFO:ParentClass:This is inside ParentClass #(<-- this comes from foo1 init)
INFO:ParentClass:This is inside ParentClass #(<-- this comes from foo2 init)
INFO:ChildClass:This is inside ChildClass #(<-- this comes from foo2 foo)
Что я ищу это __init__ призыв ChildClass войти под ChildClass регистратора, как это:
INFO:ParentClass:This is inside ParentClass #(<-- this comes from foo1 init)
INFO:ChildClass:This is inside ParentClass #(<-- this comes from foo2 init)
INFO:ChildClass:This is inside ChildClass #(<-- this comes from foo2 foo)
есть в любом случае сделать это без прохождения имя регистратора, которое я хочу использовать в ParentClass?
Так что я должен установить \ __ init__ у ребенка класс, а затем явно называть это так? __edit__ Этот подход не работает, и я все равно получаю тот же результат в файле журнала. – RNikoopour