Mule foreach : Splitter не дал результатов

Я получаю список файлов на amazon S3, перебираю список файлов и обрабатываю один файл за раз. Соответствующий поток выглядит следующим образом:

<flow name="process-from-s3" doc:name="process-from-s3"
    processingStrategy="synchronous">
    <poll doc:name="Poll" frequency="${s3-poll-interval}">
        <s3:list-objects config-ref="Amazon_S3" doc:name="Get List of files"
            accessKey="${s3-access-key}" secretKey="${s3-secret-key}"
            bucketName="${s3-read-bucket}" />
    </poll>
    <choice doc:name="Choice">
            <foreach doc:name="For Each">
                <set-session-variable variableName="s3_file_name" value="#[payload.getKey()]" doc:name="Session Variable"/>
                <logger message="From bucket ( ${s3-read-bucket} ), received the file #[s3_file_name]" level="INFO" doc:name="Logger"/>
                <flow-ref name="process_s3_file" doc:name="Flow Reference"/>
            </foreach>
    </choice>
</flow>

Поток работает хорошо, однако он продолжает выдавать следующие операторы журнала, если файлы не найдены.

[03-06 21:52:05] WARN  Foreach$CollectionMapSplitter   
[[myapp].connector.polling.mule.default.receiver.01]: Splitter returned no results. 
If this is not expected, please check your split expression

Как я могу избежать этого раздражающего сообщения журнала. Должен ли я обернуть foreach в маршрутизатор выбора, который обрабатывает foreach, если в списке есть хотя бы один элемент. Любые предложения приветствуются.


person user1493140    schedule 07.03.2014    source источник


Ответы (1)


Я бы предпочел установить уровень журнала для org.mule.routing.Foreach$CollectionMapSplitter на ERROR, чем настраивать какую-либо дополнительную логику для этого предупреждения. При необходимости см. документы Mule для настройки logger/log4j.

person Anton Kupias    schedule 07.03.2014
comment
Добавьте строку <logger name="org.mule.routing"> <level value="error"/> </logger> в свой log4j.xml. - person ᴠɪɴᴄᴇɴᴛ; 19.02.2019