@GetMapping(
        produces = MediaType.APPLICATION_JSON_VALUE,
        consumes = {
            MediaType.APPLICATION_JSON_VALUE,
            MediaType.APPLICATION_FORM_URLENCODED_VALUE
        })
    @Operation(summary = "Provide a report of the audit log. Each filter other than `interval` can accept a regular expression to match against.",
        parameters = {
            @Parameter(name = "count", description = "Total number of records to fetch from audit log"),
            @Parameter(name = "interval", description = "Accepts the duration syntax, such as PT1H"),
            @Parameter(name = "actionPerformed", description = "The action performed"),
            @Parameter(name = "clientIpAddress", description = "The client IP address"),
            @Parameter(name = "principal", description = "The principal"),
            @Parameter(name = "resourceOperatedUpon", description = "The resource operated upon")
        })
    public List<AuditActionContext> getAuditLog(
        @RequestParam(required = false, defaultValue = "10") final int count,
        @RequestParam(required = false) final String interval,
        @RequestParam(required = false) final String actionPerformed,
        @RequestParam(required = false) final String clientIpAddress,
        @RequestParam(required = false) final String principal,
        @RequestParam(required = false) final String resourceOperatedUpon) {
        val records = getAuditLog(interval, count)
            .filter(e -> StringUtils.isBlank(actionPerformed) || RegexUtils.find(actionPerformed, e.getActionPerformed()))
            .filter(e -> StringUtils.isBlank(clientIpAddress) || RegexUtils.find(clientIpAddress, e.getClientInfo().getClientIpAddress()))
            .filter(e -> StringUtils.isBlank(principal) || RegexUtils.find(principal, e.getPrincipal()))
            .filter(e -> StringUtils.isBlank(resourceOperatedUpon) || RegexUtils.find(resourceOperatedUpon, e.getResourceOperatedUpon()))
            .toList();
        LOGGER.debug("Found [{}] audit log records", records.size());
        return records;
    }
Gets audit log.

@param count                the count
@param interval             the interval
@param actionPerformed      the action performed
@param clientIpAddress      the client ip address
@param principal            the principal
@param resourceOperatedUpon the resource operated upon
@return the audit log
support/cas-server-support-reports-core/src/main/java/org/apereo/cas/web/report/AuditLogEndpoint.java