diff --git a/logstash/formatter.py b/logstash/formatter.py index f5c4424..be09163 100644 --- a/logstash/formatter.py +++ b/logstash/formatter.py @@ -29,21 +29,10 @@ def get_extra_fields(self, record): 'msecs', 'msecs', 'message', 'msg', 'name', 'pathname', 'process', 'processName', 'relativeCreated', 'thread', 'threadName', 'extra', 'auth_token', 'password') - - if sys.version_info < (3, 0): - easy_types = (basestring, bool, dict, float, int, long, list, type(None)) - else: - easy_types = (str, bool, dict, float, int, list, type(None)) - fields = {} - for key, value in record.__dict__.items(): if key not in skip_list: - if isinstance(value, easy_types): - fields[key] = value - else: - fields[key] = repr(value) - + fields[key] = value return fields def get_debug_fields(self, record): @@ -79,10 +68,10 @@ def format_exception(cls, exc_info): @classmethod def serialize(cls, message): - if sys.version_info < (3, 0): - return json.dumps(message) - else: - return bytes(json.dumps(message), 'utf-8') + data = json.dumps(message, default=str) + if sys.version_info >= (3, 0): + data = bytes(data, 'utf-8') + return data class LogstashFormatterVersion0(LogstashFormatterBase): version = 0