diff options
author | Doug Hellmann <doug@doughellmann.com> | 2017-05-15 16:15:09 -0400 |
---|---|---|
committer | Doug Hellmann <doug@doughellmann.com> | 2017-05-15 16:31:45 -0400 |
commit | 9ccd0dca1bdbd42991161ef922e1318b11b8816a (patch) | |
tree | c8f4f0d4572b98ac09f9345a4a0ee06382bc333e | |
parent | c06db3c1d193fba6254e675c43a24b0843ed30d0 (diff) | |
download | oslo-log-9ccd0dca1bdbd42991161ef922e1318b11b8816a.tar.gz |
add error_summary support for fluentd formatter
Change-Id: Ia4b570bd29783540b90dd36a5d189ee6940f8ea6
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
-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' |