summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-05-23 19:37:02 +0000
committerGerrit Code Review <review@openstack.org>2017-05-23 19:37:02 +0000
commit22dde7b657e4c5fe70764ca6609bef45284a2f93 (patch)
tree07fcd8885656176577cc57eb5d51199e00c64eaf
parent62e8c008ebc3382114dbc0ddc8c8b482cddcaf9b (diff)
parent9ccd0dca1bdbd42991161ef922e1318b11b8816a (diff)
downloadoslo-log-22dde7b657e4c5fe70764ca6609bef45284a2f93.tar.gz
Merge "add error_summary support for fluentd formatter"
-rw-r--r--oslo_log/formatters.py3
-rw-r--r--oslo_log/tests/unit/test_log.py18
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'