Skip to content

Commit

Permalink
Add json setting to allow unicodes to show in log instead of ascii ch…
Browse files Browse the repository at this point in the history
…aracter (for example, show chinese word '哈' in log instead of '\u8bed')
  • Loading branch information
ysde committed Feb 23, 2021
1 parent c34a621 commit 38be076
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
4 changes: 2 additions & 2 deletions google/cloud/logging_v2/handlers/_helpers.py
Expand Up @@ -33,7 +33,7 @@
_PROTOCOL_HEADER = "SERVER_PROTOCOL"


def format_stackdriver_json(record, message):
def format_stackdriver_json(record, message, json_ensure_ascii):
"""Helper to format a LogRecord in in Stackdriver fluentd format.
Returns:
Expand All @@ -48,7 +48,7 @@ def format_stackdriver_json(record, message):
"severity": record.levelname,
}

return json.dumps(payload)
return json.dumps(payload, ensure_ascii=json_ensure_ascii)


def get_request_data_from_flask():
Expand Down
5 changes: 3 additions & 2 deletions google/cloud/logging_v2/handlers/container_engine.py
Expand Up @@ -31,7 +31,7 @@ class ContainerEngineHandler(logging.StreamHandler):
(GKE) fluentd plugin, so that metadata such as log level are properly set.
"""

def __init__(self, *, name=None, stream=None):
def __init__(self, *, name=None, stream=None, json_ensure_ascii=True):
"""
Args:
name (Optional[str]): The name of the custom log in Cloud Logging.
Expand All @@ -40,6 +40,7 @@ def __init__(self, *, name=None, stream=None):
"""
super(ContainerEngineHandler, self).__init__(stream=stream)
self.name = name
self.json_ensure_ascii = json_ensure_ascii

def format(self, record):
"""Format the message into JSON expected by fluentd.
Expand All @@ -51,4 +52,4 @@ def format(self, record):
str: A JSON string formatted for GKE fluentd.
"""
message = super(ContainerEngineHandler, self).format(record)
return format_stackdriver_json(record, message)
return format_stackdriver_json(record, message, self.json_ensure_ascii)

0 comments on commit 38be076

Please sign in to comment.