У меня есть три модуля Python: один содержит (абстрактный) родительский класс, а два содержат классы, реализующие этот родительский класс.Родительский класс имеет несколько конкретных и некоторых абстрактных методов, он выглядит следующим образом:
moduleA
:
from abc import ABC, abstractmethod
import logging
class Parent(ABC):
def __init__(self):
logger.info("Hello world from base class!")
def concreteMethod(self, something):
return something
@abstractmethod
def additionalMethod(self, something):
"""it needs to be implemented"""
moduleB
:
import logging
from moduleA import Parent
logger = logging.getLogger("b_logger")
fh = logging.FileHandler('b_logger.log')
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
class ChildB(Parent):
def __init__(self):
super().__init__()
def additionalMethod(self):
logger.info("Hello world from B")
moduleC
:
import logging
from moduleA import Parent
logger = logging.getLogger("c_logger")
fh = logging.FileHandler('c_logger.log')
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
class ChildC(Parent):
def __init__(self):
super().__init__()
def additionalMethod(self):
logger.info("Hello world from C")
Теперь, если я решу выполнить:
from moduleB import ChildB
from moduleC import ChildC
B = ChildB()
B.additionalMethod()
C = ChildC()
C.additionalMethod()
Я хочу иметь два файла журнала, каждый из которых содержит одну строку из родительского класса и один из дочернего класса.
Моя проблема в том, как настроить регистратор родительского класса для входа в файл журнала дочернего класса (не в его собственный)?