class SolonCloudAppender extends AppenderBase<ILoggingEvent> {

    AppenderHolder appender;

    @Override
    protected void append(ILoggingEvent e) {<FILL_FUNCTION_BODY>}
}

        if (appender == null) {
            appender = AppenderManager.get("cloud");

            if (appender == null) {
                return;
            }
        }

        Level level = Level.INFO;

        switch (e.getLevel().toInt()) {
            case TRACE_INT:
                level = Level.TRACE;
                break;
            case DEBUG_INT:
                level = Level.DEBUG;
                break;
            case WARN_INT:
                level = Level.WARN;
                break;
            case ERROR_INT:
                level = Level.ERROR;
                break;
        }

        String message = e.getFormattedMessage();
        IThrowableProxy throwableProxy = e.getThrowableProxy();
        if (throwableProxy != null) {
            String errorStr = ThrowableProxyUtil.asString(throwableProxy);

            if (message.contains("{}")) {
                message = message.replace("{}", errorStr);
            } else {
                message = message + "\n" + errorStr;
            }
        }

        LogEvent event = new LogEvent(
                e.getLoggerName(),
                level,
                e.getMDCPropertyMap(),
                message,
                e.getTimeStamp(),
                e.getThreadName(),
                null);


        appender.append(event);
    
<methods>public void <init>() ,public void addFilter(Filter<ch.qos.logback.classic.spi.ILoggingEvent>) ,public void clearAllFilters() ,public synchronized void doAppend(ch.qos.logback.classic.spi.ILoggingEvent) ,public List<Filter<ch.qos.logback.classic.spi.ILoggingEvent>> getCopyOfAttachedFiltersList() ,public ch.qos.logback.core.spi.FilterReply getFilterChainDecision(ch.qos.logback.classic.spi.ILoggingEvent) ,public java.lang.String getName() ,public boolean isStarted() ,public void setName(java.lang.String) ,public void start() ,public void stop() ,public java.lang.String toString() <variables>static final int ALLOWED_REPEATS,private int exceptionCount,private FilterAttachableImpl<ch.qos.logback.classic.spi.ILoggingEvent> fai,private boolean guard,protected java.lang.String name,protected volatile boolean started,private int statusRepeatCount