@Override
    protected void process(ComplexEventChunk<StreamEvent> streamEventChunk, Processor nextProcessor,
                           StreamEventCloner streamEventCloner, ComplexEventPopulater complexEventPopulater,
                           State state) {
        while (streamEventChunk.hasNext()) {
            StreamEvent streamEvent = streamEventChunk.next();
            switch (attributeExpressionLength) {
                case 0:
                    log.info(logPrefix + streamEvent.toString(1));
                    break;
                case 1:
                    if (isLogEventExpressionExecutor != null) {
                        if ((Boolean) isLogEventExpressionExecutor.execute(streamEvent)) {
                            log.info(logPrefix + streamEvent.toString(1));
                        } else {
                            log.info(logPrefix + "Event Arrived");
                        }
                    } else {
                        log.info(logPrefix + logMessageExpressionExecutor.execute(streamEvent) + ", " +
                                streamEvent.toString(1));
                    }
                    break;
                case 2:
                    if (isLogEventExpressionExecutor != null) {
                        if ((Boolean) isLogEventExpressionExecutor.execute(streamEvent)) {
                            log.info(logPrefix + logMessageExpressionExecutor.execute(streamEvent) + ", " +
                                    streamEvent.toString(1));
                        } else {
                            log.info(logPrefix + logMessageExpressionExecutor.execute(streamEvent));
                        }
                    } else {
                        LogPriority tempLogPriority = logPriority;
                        if (logPriorityExpressionExecutor != null) {
                            tempLogPriority = LogPriority.valueOf((String) logPriorityExpressionExecutor.
                                    execute(streamEvent));
                        }
                        String message = logPrefix + logMessageExpressionExecutor.execute(streamEvent) + ", " +
                                streamEvent.toString(1);
                        logMessage(tempLogPriority, message);
                    }
                    break;
                default:
                    String message;
                    if ((Boolean) isLogEventExpressionExecutor.execute(streamEvent)) {
                        message = logPrefix + logMessageExpressionExecutor.execute(streamEvent) + ", " +
                                streamEvent.toString(1);
                    } else {
                        message = logPrefix + logMessageExpressionExecutor.execute(streamEvent);
                    }
                    LogPriority tempLogPriority = logPriority;
                    if (logPriorityExpressionExecutor != null) {
                        tempLogPriority = LogPriority.valueOf((String) logPriorityExpressionExecutor.
                                execute(streamEvent));
                    }
                    logMessage(tempLogPriority, message);
            }
        }
        nextProcessor.process(streamEventChunk);
    }
The init method of the StreamFunction

@param metaStreamEvent              the  stream event meta
@param inputDefinition              the incoming stream definition
@param attributeExpressionExecutors the executors for the function parameters
@param configReader                 this hold the {@link LogStreamProcessor} configuration reader.
@param streamEventClonerHolder      streamEventCloner Holder
@param findToBeExecuted             find will be executed
@param siddhiQueryContext           current siddhi query context
@return the additional output attributes introduced by the function
modules/siddhi-core/src/main/java/io/siddhi/core/query/processor/stream/LogStreamProcessor.java