Python 'RequestsHandler' nesne hiçbir özellik 'filtreleri' vardır

oy
1

Ben asyncio kullanmasına izin vermek bir kuyruğu kullanan bir HTTP isteği işleyicisi yaptı.

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)

Ben çalıştırdığınızda, ancak logger.info('a log message'), bu döndürür:

Exception has occurred: AttributeError
'RequestsHandler' object has no attribute 'filters'
Oluştur 20/10/2018 saat 13:58
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Sizin RequestHandleryapıcı çağırmalıdır logging.Handleryapıcı.

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

Bu da, aramalar Filtererbaşlatır şeydir yapıcı, filtersboş bir listeye niteliği.

Cevap 20/10/2018 saat 14:44
kaynak kullanıcı

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