in xray-setup/crhelper/log_helper.py [0:0]
def format(self, record):
record_dict = record.__dict__.copy()
record_dict['asctime'] = self.formatTime(record)
log_dict = {
k: v % record_dict
for k, v in self.format_dict.items()
if v
}
if isinstance(record_dict['msg'], dict):
log_dict['message'] = record_dict['msg']
else:
log_dict['message'] = record.getMessage()
# Attempt to decode the message as JSON, if so, merge it with the
# overall message for clarity.
try:
log_dict['message'] = json.loads(log_dict['message'])
except (TypeError, ValueError):
pass
if record.exc_info:
# Cache the traceback text to avoid converting it multiple times
# (it's constant anyway)
# from logging.Formatter:format
if not record.exc_text:
record.exc_text = self.formatException(record.exc_info)
if record.exc_text:
log_dict['exception'] = record.exc_text
json_record = json.dumps(log_dict, default=self.default_json_formatter)
if hasattr(json_record, 'decode'): # pragma: no cover
json_record = json_record.decode('utf-8')
return json_record