Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ extra
items passed in the logging call.
(default: None)

ensure_ascii
By default ('True') non_ASCII symbols in JSON escaped with \uXXXX sequence.
But on some specific settings of Elastic Stack
this sequences won't be transformed back to UTF8 represintation.
For this specific cases try to set parameter to 'False'.

Options for the asynchronous processing (in module logstash_async.constants)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
6 changes: 4 additions & 2 deletions logstash_async/formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,14 @@
class LogstashFormatter(logging.Formatter):

# ----------------------------------------------------------------------
def __init__(self, message_type='python-logstash', tags=None, fqdn=False, extra_prefix='extra', extra=None):
def __init__(self, message_type='python-logstash', tags=None, fqdn=False, extra_prefix='extra', extra=None,
ensure_ascii=True):
super(LogstashFormatter, self).__init__()
self._message_type = message_type
self._tags = tags if tags is not None else []
self._extra_prefix = extra_prefix
self._extra = extra
self._ensure_ascii = ensure_ascii

self._interpreter = None
self._interpreter_version = None
Expand Down Expand Up @@ -201,7 +203,7 @@ def _serialize(self, message):
if sys.version_info < (3, 0):
return json.dumps(message)
else:
return bytes(json.dumps(message), 'utf-8')
return bytes(json.dumps(message, ensure_ascii=self._ensure_ascii), 'utf-8')


class DjangoLogstashFormatter(LogstashFormatter):
Expand Down