in awslambdaric/lambda_runtime_log_utils.py [0:0]
def format(self, record: logging.LogRecord) -> str:
record.levelno = _format_log_level(record)
record.levelname = logging.getLevelName(record.levelno)
record._frame_type = _JSON_FRAME_TYPES.get(
record.levelno, _JSON_FRAME_TYPES[logging.NOTSET]
)
result = {
"timestamp": self.formatTime(record, self.datefmt),
"level": record.levelname,
"message": record.getMessage(),
"logger": record.name,
"stackTrace": self.__format_stacktrace(record.exc_info),
"errorType": self.__format_exception_name(record.exc_info),
"errorMessage": self.__format_exception(record.exc_info),
"requestId": getattr(record, "aws_request_id", None),
"location": self.__format_location(record),
}
result.update(
(key, value)
for key, value in record.__dict__.items()
if key not in _RESERVED_FIELDS and key not in result
)
result = {k: v for k, v in result.items() if v is not None}
return _encode_json(result) + "\n"