Skip to content

Commit 04e8141

Browse files
authored
Merge pull request fluent#74 from fluent/fix-number-only-string-handling
Fix raising exception when passing number only string. fix fluent#70
2 parents 8f71787 + d6c735b commit 04e8141

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

fluent/handler.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,11 @@ def _structuring(self, data, record):
8888
self._add_dic(data, msg)
8989
elif isinstance(msg, basestring):
9090
try:
91-
self._add_dic(data, json.loads(str(msg)))
91+
json_msg = json.loads(str(msg))
92+
if isinstance(json_msg, dict):
93+
self._add_dic(data, json_msg)
94+
else:
95+
self._add_dic(data, {'message': str(json_msg)})
9296
except ValueError:
9397
msg = record.getMessage()
9498
self._add_dic(data, {'message': msg})

tests/test_handler.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,19 @@ def test_unstructured_formatted_message(self):
146146
self.assertTrue('message' in data[0][2])
147147
self.assertEqual('hello world, you!', data[0][2]['message'])
148148

149+
def test_number_string_simple_message(self):
150+
handler = fluent.handler.FluentHandler('app.follow', port=self._port)
151+
152+
logging.basicConfig(level=logging.INFO)
153+
log = logging.getLogger('fluent.test')
154+
handler.setFormatter(fluent.handler.FluentRecordFormatter())
155+
log.addHandler(handler)
156+
log.info("1")
157+
handler.close()
158+
159+
data = self.get_data()
160+
self.assertTrue('message' in data[0][2])
161+
149162
def test_non_string_simple_message(self):
150163
handler = fluent.handler.FluentHandler('app.follow', port=self._port)
151164

0 commit comments

Comments
 (0)