Статьи

Демонтаж мула, пример мула с регистратором

Логгер и сообщение

Создайте поток mule, добавьте конечную точку http с именем хоста по умолчанию и именем порта.

Хост: localhost

Порт: 8081

Примечание. Для практики всегда используйте конечную точку http, поскольку ее легко создавать и тестировать.

Затем добавьте компонент средства ведения журнала со значением сообщения как # [payload], а затем еще один компонент средства ведения журнала со значением сообщения как # [сообщение].

Поток будет выглядеть так:

И конфигурация xml выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
   xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.5.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
    <flow name="dismantlemuleFlow1" doc:name="dismantlemuleFlow1">
      <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/>
      <logger message="#[payload]" level="INFO" doc:name="Logger"/>
      <logger message="#[message]" level="INFO" doc:name="Logger"/>   
    </flow>
</mule>

Запустите приложение и нажмите на ссылку http: // localhost: 8081 / testdata, и вы получите следующий вывод в консоли.

я

NFO  2015-01-28 08:30:10,677 [[dismantlemule].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: /testdata

INFO  2015-01-28 08:30:10,692 [[dismantlemule].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor:

org.mule.DefaultMuleMessage

{

  id=c5cde650-a699-11e4-8792-a0d3c169f60f

  payload=java.lang.String

  correlationId=<not set>

  correlationGroup=-1

  correlationSeq=-1

  encoding=UTF-8

  exceptionPayload=<not set>

Message properties:

  INVOCATION scoped properties:

  INBOUND scoped properties:

  Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

  Accept-Encoding=gzip, deflate

  Accept-Language=en-US,en;q=0.5

  Connection=true

  Host=localhost:8081

  Keep-Alive=true

  MULE_ORIGINATING_ENDPOINT=endpoint.http.localhost.8081

  MULE_REMOTE_CLIENT_ADDRESS=/127.0.0.1:50584

  User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0

  http.context.path=/

  http.context.uri=http://localhost:8081

  http.headers={Keep-Alive=true, Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, Connection=true, User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0, Host=localhost:8081, Accept-Encoding=gzip, deflate, Accept-Language=en-US,en;q=0.5}

  http.method=GET

  http.query.params={}

  http.query.string=

  http.relative.path=testdata

  http.request=/testdata

  http.request.path=/testdata

  http.version=HTTP/1.1

  OUTBOUND scoped properties:

  MULE_ENCODING=UTF-8

  SESSION scoped properties:

}

Первая строка — это вывод выражения мула # [полезной нагрузки], которое, как следует из названия, печатает полезную нагрузку.

INFO  2015-01-28 08:30:10,677 [[dismantlemule].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: /testdata

А остальные — это вывод # [message], который дает полную информацию о сообщении.

Примечание: регистрация выходных данных полезной нагрузки будет очень полезна при отладке, как system.out.println в java. Как это дает четкую информацию о том, как полезная нагрузка выглядит на разных этапах потока.