def test_logging_exception_traceback(stdout):
    logger = Logger(level="DEBUG", stream=stdout)

    try:
        raise ValueError("Boom")
    except ValueError:
        logger.exception("A value error occurred")

    log_dict = json.loads(stdout.getvalue())

    check_log_dict(log_dict)
    assert "ERROR" == log_dict["level"]
    assert "exception" in log_dict
Exemple #2
0
def test_logging_exception_traceback(stdout):
    logger = Logger(level="DEBUG",
                    stream=stdout,
                    request_id="request id!",
                    another="value")

    try:
        raise Exception("Boom")
    except Exception:
        logger.exception("This is a test")

    log_dict = json.loads(stdout.getvalue())

    check_log_dict(log_dict)
    assert "exception" in log_dict
Exemple #3
0
def event_log(s3_bucket: str, s3_key: str, function_name: str,
              logger: Logger) -> EventLog:
    logger.append_keys(s3_bucket=s3_bucket, s3_key=s3_key)
    logger.debug(f"processing s3 event")
    log = EventLog(
        status=STATUS_PROCESSING,
        s3_key=s3_key,
        s3_bucket=s3_bucket,
        function=function_name,
        region=os.environ.get('AWS_REGION', 'no region set'),
        received_time=datetime.now(timezone.utc),  # TODO get from s3 record
    )
    log.logger = logger
    log.save()
    try:
        yield log
        log.mark_processed()
    except Exception as e:
        if logger.log_level == 'DEBUG':
            logger.exception(f"error processing s3 object")
        log.mark_failed(str(e))
        raise