def METHOD_NAME(
    level: str = "warning",
    cause: str = "Handled exception",
    skip_sentry: bool = False,
    print_tb: bool = False,
    extra_log: str | None = None,
    project=None,
    message: bool = False,
):
    """
    Wrapper for error reporting.
    This can be used for store exceptions in error reporting solutions as rollbar while
    handling error gracefully and giving user cleaner message.
    """
    __traceback_hide__ = True  # noqa: F841
    if HAS_ROLLBAR and hasattr(settings, "ROLLBAR"):
        rollbar.report_exc_info(level=level)
    if not skip_sentry and settings.SENTRY_DSN:
        with sentry_sdk.push_scope() as scope:
            scope.set_tag("cause", cause)
            if project is not None:
                scope.set_tag("project", project.slug)
            scope.set_tag("user.locale", get_language())
            scope.level = level
            if message:
                sentry_sdk.capture_message(cause)
            else:
                sentry_sdk.capture_exception()
    log = getattr(LOGGER, level)
    error = sys.exc_info()[1]
    # Include JSON document if available. It might be missing
    # when the error is raised from requests.
    if isinstance(error, JSONDecodeError) and not extra_log and hasattr(error, "doc"):
        extra_log = repr(error.doc)
    log("%s: %s: %s", cause, error.__class__.__name__, error)
    if extra_log:
        log("%s: %s: %s", cause, error.__class__.__name__, extra_log)
    if print_tb:
        LOGGER.exception(cause)