Não estou conseguindo resolver o erro acima mencionado, o meu código está estruturado da seguinte forma:
Tenho o arquivo Connect.py "classe de conexão com o banco de dados" e nesse arquivo eu crio uma instancia da class logger para registro de log, segue um pequeno trecho do meu código de conexão
class Connect:
DB = None
def __init__ (self):
self.log = Logger.Logger()
try:
self.DB = psycopg2.connect(self.connectionFile())
except (Exception, psycopg2.DatabaseError) as error:
self.log.loggerException(error)
return error
Tenho a class Logger.py e dentro dela eu faço a chamada da class Connect, para executar um select no banco de dados e verificar as configurações de logs, como por exemplo (nível de log, se gera log ou não etc.), porem quando estou chamando a class de conexão com banco de dados devido eu já ter instanciado a class logger dentro dela me retorna o erro "RecursionError"
import logging
import sys
from classes import DBConection
class Logger:
# Create logger
logger = logging.getLogger(__name__)
# Create console handler and set level to debug
ch = logging.FileHandler(filename='log/appchamados.log', mode='a', encoding=None, delay=True)
# self.ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# Create formatter
formatter = logging.Formatter('%(asctime)s - %(levelname)s: %(message)s')
# Add formatter to ch
ch.setFormatter(formatter)
# Add ch to logger
logger.addHandler(ch)
def __init__(self):
self.loggingLevel()
self.db = DBConection.Connect()
def loggerDebug(self, message):
if self.gerLog():
self.logger.debug(message)
Não encontrei uma solução para essa situação, gostaria de saber se alguém já lidou com esse tipo de erro e se eu devo ou não instanciar a class "Connect" na class "Logger", cuja class "Connect já possui uma "instancia" da class "Logger", se eu removo a instancia da class "Connect" da "Logger" funciona normalmente, se eu adiciono ocorre o erro.