@Override
    public void start() {
        super.start();
        this.deliveryThread = Thread.ofVirtual()
            .name("CloudWatchAppenderDeliveryThread")
            .start(() -> {
                while (!shutdown) {
                    try {
                        flush();
                    } catch (final Exception e) {
                        org.apereo.cas.util.LoggingUtils.error(LOGGER, e);
                    }
                    if (!shutdown && queue.size() < AWS_DRAIN_LIMIT) {
                        try {
                            synchronized (monitor) {
                                monitor.wait(flushPeriodMillis);
                            }
                        } catch (final InterruptedException e) {
                            org.apereo.cas.util.LoggingUtils.error(LOGGER, e);
                            Thread.currentThread().interrupt();
                        }
                    }
                }

                while (!queue.isEmpty()) {
                    flush();
                }
            });
        if (StringUtils.isBlank(this.sequenceTokenCache)) {
            this.sequenceTokenCache = createLogGroupAndLogStreamIfNeeded();
        }
    }
Create appender cloud watch appender.

@param name                             the name
@param endpoint                         the endpoint
@param awsLogStreamName                 the aws log stream name
@param awsLogGroupName                  the aws log group name
@param awsLogStreamFlushPeriodInSeconds the aws log stream flush period in seconds
@param credentialAccessKey              the credential access key
@param credentialSecretKey              the credential secret key
@param awsLogRegionName                 the aws log region name
@param layout                           the layout
@param createIfNeeded                   whether to create resources if needed
@param createLogGroupIfNeeded           whether to create log group if needed
@param createLogStreamIfNeeded          whether to create log stream if needed
@return the cloud watch appender
support/cas-server-support-aws-cloudwatch/src/main/java/org/apereo/cas/logging/CloudWatchAppender.java