1

I am learning to use the logging module and I need to send all the logs to a string but differentiating between severity levels. So this is my example code:

import logging

class LogStream(logging.StreamHandler):
    def __init__(self):
        self.logs = ''
        logging.StreamHandler.__init__(self)

    def write(self, str):
        self.logs += str

    def flush(self):
        pass

    def __str__(self):
        return self.logs

    def __repr__(self):
        return self.logs


# Initialize Logger logger object
log_error = LogStream()
log_error.setLevel(logging.ERROR)

log_debug = LogStream()
log_debug.setLevel(logging.DEBUG)

logger = logging.getLogger('logger')
logger.setLevel(logging.DEBUG)

logger.addHandler(log_error)
logger.addHandler(log_debug)
logger.debug('debugging something')
logger.error('debugging something')
print(log_error)
print(log_debug)

And i get a TypeError: 'NoneType' object is not callable. What i'm doing wrong?

I had follow this example: https://stackoverflow.com/a/46139323/7021536

Martin
  • 11
  • 2

0 Answers0