Skip to content

Commit ae0fca5

Browse files
committed
feat: Add json "ensure_ascii" setting in ContainerEngineHandler
To allow unicodes to show in log instead of ascii character (for example, show chinese word '哈' in log instead of '\u8bed')
1 parent c34a621 commit ae0fca5

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

google/cloud/logging_v2/handlers/_helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
_PROTOCOL_HEADER = "SERVER_PROTOCOL"
3434

3535

36-
def format_stackdriver_json(record, message):
36+
def format_stackdriver_json(record, message, json_ensure_ascii):
3737
"""Helper to format a LogRecord in in Stackdriver fluentd format.
3838
3939
Returns:
@@ -48,7 +48,7 @@ def format_stackdriver_json(record, message):
4848
"severity": record.levelname,
4949
}
5050

51-
return json.dumps(payload)
51+
return json.dumps(payload, ensure_ascii=json_ensure_ascii)
5252

5353

5454
def get_request_data_from_flask():

google/cloud/logging_v2/handlers/container_engine.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class ContainerEngineHandler(logging.StreamHandler):
3131
(GKE) fluentd plugin, so that metadata such as log level are properly set.
3232
"""
3333

34-
def __init__(self, *, name=None, stream=None):
34+
def __init__(self, *, name=None, stream=None, json_ensure_ascii=True):
3535
"""
3636
Args:
3737
name (Optional[str]): The name of the custom log in Cloud Logging.
@@ -40,6 +40,7 @@ def __init__(self, *, name=None, stream=None):
4040
"""
4141
super(ContainerEngineHandler, self).__init__(stream=stream)
4242
self.name = name
43+
self.json_ensure_ascii = json_ensure_ascii
4344

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

0 commit comments

Comments
 (0)