Ведение журнала Python в обработчике StringIO

У меня есть тест на Python, в котором я хочу проверить, работает ли ведение журнала правильно. Например, у меня есть функция, которая создает пользователя и в конце журнала записывает ответ в файл журнала.

logger = logging.getLogger('mylogger')
logger.setLevel(logging.DEBUG)
handler = logging.handlers.WatchedFileHandler('mylogfile.log')
formatter = logging.Formatter('%(asctime)s: %(message)s',
                              '%d/%b/%Y:%H:%M:%S %z')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info('Some log text')

В моем тестовом примере я хочу отправить вывод журнала в StringIO.

class MyTest(unittest.TestCase):
    def setUp(self):
        stream = StringIO()
        self.handler = logging.StreamHandler(stream)
        log = logging.getLogger('mylogger')
        log.removeHandler(log.handlers[0])
        log.addHandler(self.handler)

    def tearDown(self):
        log = logging.getLogger('mylogger')
        log.removeHandler(self.handler)
        self.handler.close()

Проблема в том, что я не знаю, как мне проверить, работает ли мой регистратор.

14
задан bogtan 2 March 2012 в 13:38
поделиться