diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-05-23 19:37:02 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-05-23 19:37:02 +0000 |
commit | 22dde7b657e4c5fe70764ca6609bef45284a2f93 (patch) | |
tree | 07fcd8885656176577cc57eb5d51199e00c64eaf | |
parent | 62e8c008ebc3382114dbc0ddc8c8b482cddcaf9b (diff) | |
parent | 9ccd0dca1bdbd42991161ef922e1318b11b8816a (diff) | |
download | oslo-log-22dde7b657e4c5fe70764ca6609bef45284a2f93.tar.gz |
Merge "add error_summary support for fluentd formatter"
-rw-r--r-- | oslo_log/formatters.py | 3 | ||||
-rw-r--r-- | oslo_log/tests/unit/test_log.py | 18 |
2 files changed, 20 insertions, 1 deletions
diff --git a/oslo_log/formatters.py b/oslo_log/formatters.py index e95d508..4091692 100644 --- a/oslo_log/formatters.py +++ b/oslo_log/formatters.py @@ -256,7 +256,8 @@ class FluentFormatter(logging.Formatter): 'funcname': record.funcName, 'process_name': record.processName, 'hostname': self.hostname, - 'traceback': None} + 'traceback': None, + 'error_summary': _get_error_summary(record)} # Build the extra values that were given to us, including # the context. diff --git a/oslo_log/tests/unit/test_log.py b/oslo_log/tests/unit/test_log.py index ab1950c..e3f8f15 100644 --- a/oslo_log/tests/unit/test_log.py +++ b/oslo_log/tests/unit/test_log.py @@ -571,6 +571,24 @@ class FluentFormatterTestCase(LogTestBase): self.assertEqual('DEBUG', data['level']) self.assertFalse(data['traceback']) + def test_exception(self): + local_context = _fake_context() + try: + raise RuntimeError('test_exception') + except RuntimeError: + self.log.debug('testing', context=local_context) + data = jsonutils.loads(self.stream.getvalue()) + self.assertIn('error_summary', data) + self.assertEqual('RuntimeError: test_exception', + data['error_summary']) + + def test_no_exception(self): + local_context = _fake_context() + self.log.info('testing', context=local_context) + data = jsonutils.loads(self.stream.getvalue()) + self.assertIn('error_summary', data) + self.assertEqual('', data['error_summary']) + def test_json_exception(self): test_msg = 'This is %s' test_data = 'exceptional' |