protected void setRollSize(final String rollSize) {
        if (rollSize != null && !rollSize.isBlank()) {
            try {
                final Long value = ModelStringUtil.parseIECByteSizeString(rollSize);
                if (value == null) {
                    throw new PipelineFactoryException("Incorrect value for roll size: " + rollSize);
                }

                this.rollSize = value;
            } catch (final NumberFormatException e) {
                throw new PipelineFactoryException("Incorrect value for roll size: " + rollSize);
            }
        }
    }
Child classes will have their own schemes for generating a key.

@return The key to refer to the appender.
@throws IOException If anything goes wrong during key construction, it can call out to external property services
stroom-pipeline/src/main/java/stroom/pipeline/writer/AbstractRollingAppender.java