objeto Python 'RequestsHandler' tem nenhum atributo 'filtros'

votos
1

Fiz um manipulador de solicitações HTTP que utiliza uma fila para permitir que ele use asyncio.

class RequestsHandler(logging.Handler):
    def __init__(self, loop):
        self._queue = queue.Queue
        loop.create_task(self._drain_loop())

    def emit(self, record):
        log_entry = self.format(record)
        self._queue.put(log_entry)

    async def _drain_loop(self):
        while True:
            log_entry = self._queue.get()
            payload = {
                'text': log_entry
            }
            await requests.post(
                'https://example.com/foo/bar',
                data=payload)

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
handler = RequestsHandler(loop=asyncio.get_event_loop())
handler.setLevel(logging.INFO)
logger.addHandler(handler)

No entanto, quando eu corro logger.info('a log message'), ele retorna:

Exception has occurred: AttributeError
'RequestsHandler' object has no attribute 'filters'
Publicado 20/10/2018 em 13:58
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Seu RequestHandlerconstrutor deve chamar o logging.Handlerconstrutor.

class RequestsHandler(logging.Handler):
    def __init__(self, loop):
        logging.Handler.__init__(self)
        ...

Isso, por sua vez, chama o Filtererconstrutor, que é o que inicializa o filtersatributo para uma lista vazia.

Respondeu 20/10/2018 em 14:44
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more