mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-76913: Add "merge extras" feature to LoggerAdapter (GH-107292)
This commit is contained in:
parent
580f357c66
commit
a482e5bf00
4 changed files with 66 additions and 4 deletions
|
@ -5433,6 +5433,46 @@ class LoggerAdapterTest(unittest.TestCase):
|
|||
self.assertIs(adapter.manager, orig_manager)
|
||||
self.assertIs(self.logger.manager, orig_manager)
|
||||
|
||||
def test_extra_in_records(self):
|
||||
self.adapter = logging.LoggerAdapter(logger=self.logger,
|
||||
extra={'foo': '1'})
|
||||
|
||||
self.adapter.critical('foo should be here')
|
||||
self.assertEqual(len(self.recording.records), 1)
|
||||
record = self.recording.records[0]
|
||||
self.assertTrue(hasattr(record, 'foo'))
|
||||
self.assertEqual(record.foo, '1')
|
||||
|
||||
def test_extra_not_merged_by_default(self):
|
||||
self.adapter.critical('foo should NOT be here', extra={'foo': 'nope'})
|
||||
self.assertEqual(len(self.recording.records), 1)
|
||||
record = self.recording.records[0]
|
||||
self.assertFalse(hasattr(record, 'foo'))
|
||||
|
||||
def test_extra_merged(self):
|
||||
self.adapter = logging.LoggerAdapter(logger=self.logger,
|
||||
extra={'foo': '1'},
|
||||
merge_extra=True)
|
||||
|
||||
self.adapter.critical('foo and bar should be here', extra={'bar': '2'})
|
||||
self.assertEqual(len(self.recording.records), 1)
|
||||
record = self.recording.records[0]
|
||||
self.assertTrue(hasattr(record, 'foo'))
|
||||
self.assertTrue(hasattr(record, 'bar'))
|
||||
self.assertEqual(record.foo, '1')
|
||||
self.assertEqual(record.bar, '2')
|
||||
|
||||
def test_extra_merged_log_call_has_precedence(self):
|
||||
self.adapter = logging.LoggerAdapter(logger=self.logger,
|
||||
extra={'foo': '1'},
|
||||
merge_extra=True)
|
||||
|
||||
self.adapter.critical('foo shall be min', extra={'foo': '2'})
|
||||
self.assertEqual(len(self.recording.records), 1)
|
||||
record = self.recording.records[0]
|
||||
self.assertTrue(hasattr(record, 'foo'))
|
||||
self.assertEqual(record.foo, '2')
|
||||
|
||||
|
||||
class LoggerTest(BaseTest, AssertErrorMessage):
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue