235
236
def test_can_set_extra_details(self):
236
237
logger, filt = self.create_log_with_filter()
237
logger.set_extra_args(dict(foo='bar'))
238
logger.add_extra_args(dict(foo='bar'))
238
239
logger.info("Testing")
240
241
self.assertThat(filt.log_records[0].foo, Equals('bar'))
261
262
def test_extra_args_can_be_mixed(self):
262
263
logger, filt = self.create_log_with_filter()
263
logger.set_extra_args(dict(foo='bar'))
264
logger.add_extra_args(dict(foo='bar'))
264
265
logger.info("Testing", extra=dict(bar='baz'))
266
267
self.assertThat(filt.log_records[0].foo, Equals('bar'))
269
270
def test_log_method_extra_args_take_priority(self):
270
271
logger, filt = self.create_log_with_filter()
271
logger.set_extra_args(dict(foo='bar'))
272
logger.add_extra_args(dict(foo='bar'))
272
273
logger.info("Testing", extra=dict(foo='baz'))
274
275
self.assertThat(filt.log_records[0].foo, Equals('baz'))
277
def test_extra_args_additive_and_reset(self):
278
class XLogger(util_logging.ExtraLogger):
279
extra_args = dict(bar='baz')
280
logger, filt = self.create_log_with_filter(__name__+'.x.add', XLogger)
281
logger.add_extra_args(dict(foo='bar'))
282
logger.info("Testing")
284
self.assertThat(filt.log_records[0].bar, Equals('baz'))
285
self.assertThat(filt.log_records[0].foo, Equals('bar'))
287
logger.reset_extra_args()
288
logger.info("Testing")
290
self.assertThat(filt.log_records[1].bar, Equals('baz'))
291
self.assertFalse(hasattr(filt.log_records[1], 'foo'))
293
def test_extra_args_thread_safe(self):
294
class XLogger(util_logging.ExtraLogger):
295
extra_args = dict(bar='baz')
296
logger, filt = self.create_log_with_filter(__name__+'.x.safe', XLogger)
297
logger.add_extra_args(dict(foo='from1'))
300
logger.add_extra_args(dict(foo='from2'))
301
logger.info("Testing")
302
th2 = threading.Thread(target=t2)
305
logger.info("Testing")
307
self.assertThat(filt.log_records[0].bar, Equals('baz'))
308
self.assertThat(filt.log_records[0].foo, Equals('from2'))
309
self.assertThat(filt.log_records[1].bar, Equals('baz'))
310
self.assertThat(filt.log_records[1].foo, Equals('from1'))