def test_context_logging(self): offset = len(_journal_file.getvalue()) logger = JournalLogger('test_journal_logger') logger.addHandler(JournalLogHandler(path=None)) citest_extra = {'foo':'bar'} start_time = _journal_clock.last_time JournalLogger.execute_in_context( 'The Test Context', lambda: {logger.debug('Test Log Message')}, **citest_extra) expect_sequence = [ { '_title': 'The Test Context', '_type': 'JournalContextControl', '_timestamp': start_time + 1, '_thread': current_thread().ident, 'control': 'BEGIN', 'foo': 'bar', }, { '_value': 'Test Log Message', '_type': 'JournalMessage', '_level': logging.DEBUG, '_timestamp': start_time + 2, '_thread': current_thread().ident, 'format': 'pre' }, { '_type': 'JournalContextControl', '_timestamp': start_time + 3, '_thread': current_thread().ident, 'control': 'END' } ] entry_str = _journal_file.getvalue()[offset:] input_stream = RecordInputStream(BytesIO(entry_str)) for expect in expect_sequence: json_str = next(input_stream) json_dict = json_module.JSONDecoder().decode(json_str) self.assertEqual(expect, json_dict)
def test_journal_logger_with_custom_message(self): offset = len(_journal_file.getvalue()) logger = JournalLogger(__name__) logger.addHandler(JournalLogHandler(path=None)) citest_extra = {'foo':'bar', '_journal_message':'HELLO, JOURNAL'} logger.debug('Hello, World!', extra={'citest_journal': citest_extra}) expect = { '_value': 'HELLO, JOURNAL', '_type': 'JournalMessage', '_level': logging.DEBUG, '_timestamp': _journal_clock.last_time, '_thread': current_thread().ident, 'foo': 'bar', 'format': 'pre' } entry_str = _journal_file.getvalue()[offset:] json_str = next(RecordInputStream(BytesIO(entry_str))) json_dict = json_module.JSONDecoder().decode(json_str) self.assertEqual(expect, json_dict)
def test_journal_logger(self): offset = len(_journal_file.getvalue()) logger = JournalLogger('test_journal_logger') logger.addHandler(JournalLogHandler(path=None)) citest_extra = {'foo':'bar', 'format':'FMT'} logger.info('Hello, World!', extra={'citest_journal': citest_extra}) expect = { '_value': 'Hello, World!', '_type': 'JournalMessage', '_level': logging.INFO, '_timestamp': _journal_clock.last_time, '_thread': current_thread().ident, 'foo': 'bar', 'format': 'FMT', } entry_str = _journal_file.getvalue()[offset:] json_str = next(RecordInputStream(BytesIO(entry_str))) json_dict = json_module.JSONDecoder().decode(json_str) self.assertEqual(expect, json_dict)