@@ -69,19 +69,30 @@ def __init__(self):
6969 def format (self , record ):
7070 json_record = {}
7171 json_record ["message" ] = record .getMessage ()
72+ json_record ["severity" ] = record .levelname
73+ json_record ["timestamp" ] = datetime .datetime .fromtimestamp (
74+ record .created , datetime .timezone .utc
75+ ).isoformat ()
76+ json_record ["logger" ] = record .name
7277 if "username" in record .__dict__ :
7378 json_record ["username" ] = record .__dict__ ["username" ]
7479 if "path" in record .__dict__ :
7580 json_record ["path" ] = record .__dict__ ["path" ]
7681 if "method" in record .__dict__ :
7782 json_record ["method" ] = record .__dict__ ["method" ]
7883 if "body" in record .__dict__ and record .__dict__ ["body" ]:
79- if record .__dict__ ["content-type" ] == "application/json" :
80- json_record ["body" ] = json .loads (
81- record .__dict__ ["body" ].decode ("utf-8" )
82- )
83- else :
84- json_record ["body" ] = record .__dict__ ["body" ].decode ("utf-8" )
84+ try :
85+ body_content = record .__dict__ ["body" ]
86+ if isinstance (body_content , bytes ):
87+ body_content = body_content .decode ("utf-8" )
88+
89+ if record .__dict__ .get ("content-type" ) == "application/json" :
90+ json_record ["body" ] = json .loads (body_content )
91+ else :
92+ json_record ["body" ] = body_content
93+ except Exception :
94+ json_record ["body" ] = str (record .__dict__ ["body" ])
95+
8596 if "client" in record .__dict__ :
8697 json_record ["client" ] = record .__dict__ ["client" ]
8798 if "status_code" in record .__dict__ :
@@ -149,7 +160,10 @@ def filter(self, record):
149160
150161console_handler = logging .StreamHandler ()
151162console_handler .addFilter (LogFilter ())
152- console_handler .setFormatter (logging .Formatter (log_format ))
163+ if os .environ .get ("YETI_K8S_RUNTIME" , "false" ).lower () == "true" :
164+ console_handler .setFormatter (JsonFormatter ())
165+ else :
166+ console_handler .setFormatter (logging .Formatter (log_format ))
153167handlers .append (console_handler )
154168
155169audit_logfile = yeti_config .get ("system" , "audit_logfile" )
0 commit comments