Я не уверен, что вы пытаетесь достичь с помощью этого кода.Вы предоставили три части, но включили несколько отключенных компонентов.Давайте рассмотрим по частям:
class abc():
logging.basicConfig(filename=r"D:\logger.txt",
format="%(asctime)s %(message)s",
filemode="w")
abcd=logging.getLogger()
abcd.setLevel(logging.INFO)
Вы установили класс abc
, инициализировали конфигурацию logging
1 и создали атрибут класса abcd
... который вы не делаетеобратитесь к вашему более позднему коду, поэтому я не уверен, почему он находится в вашем сообщении.
class pqr(abc):
p=logging.getLogger('abcd')
p.setLevel(logging.INFO)
Вы получили класс pqr
из вашего предыдущего класса.Затем вы создаете новый регистратор с меткой «abcd», делаете его атрибутом класса и устанавливаете уровень отчетности.* Обратите внимание, что это новый регистратор, а не тот, который вы создали в abc
.
Пока все хорошо.Однако ...
# In pqr:
def you(self):
self.p("Ad")
# Main
obj=pqr()
obj.you()
obj.p (self.p
в методе you
) является регистратором класса pqr
.Вы пытались вызвать объект регистратора в целом.Это не метод или функция;это целый объект логгера.Если вы ожидаете что-то записать в журнал, вам нужно вызвать соответствующий метод, такой как self.p.info(<your message>)
.