Browse Source

修改Camel Tracer输出格式

airhead 8 years ago
parent
commit
2c97322a75

+ 36 - 8
hos-broker/src/main/java/com/yihu/hos/broker/common/log/TracerFormatter.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.interceptor.DefaultTraceFormatter;
import org.apache.camel.processor.interceptor.TraceInterceptor;
@ -19,18 +20,45 @@ public class TracerFormatter extends DefaultTraceFormatter {
    public Object format(TraceInterceptor interceptor, ProcessorDefinition<?> node, Exchange exchange) {
        System.out.println(exchange.getIn().getBody());
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            ObjectNode objectNode = objectMapper.createObjectNode();
            Map<String, Object> headers = exchange.getIn().getHeaders();
            headers.forEach((key, value) -> {
                if (value == null) {
                    return;
            ObjectNode rootNode = objectMapper.createObjectNode();
            {
                Message in = exchange.getIn();
                ObjectNode inNode = rootNode.with("in");
                Map<String, Object> headers = in.getHeaders();
                headers.forEach((key, value) -> {
                    if (value == null) {
                        return;
                    }
                    inNode.put(key, value.toString());
                });
                if (in.getBody() != null) {
                    inNode.put("body", in.getBody(String.class));
                }
            }
                objectNode.put(key, value.toString());
            });
            {
                ObjectNode outNode = rootNode.with("out");
                Message out = exchange.getOut();
                Map<String, Object> headers = out.getHeaders();
                headers.forEach((key, value) -> {
                    if (value == null) {
                        return;
                    }
                    outNode.put(key, value.toString());
                });
                if (out.getBody() != null) {
                    outNode.put("body", out.getBody(String.class));
                }
            }
            return objectMapper.writeValueAsString(objectNode);
            return objectMapper.writeValueAsString(rootNode);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

+ 0 - 1
hos-camel2/src/main/java/camel/log/JmsAppender.java

@ -15,7 +15,6 @@ public class JmsAppender extends JMSTopicAppender {
        if (mdcPropertyMap.size() == 0) {
            return;
        }
        System.out.println(mdcPropertyMap);
        System.out.println(event.getMessage());
        super.append(event);
    }

+ 36 - 10
hos-camel2/src/main/java/camel/log/TracerFormatter.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.interceptor.DefaultTraceFormatter;
import org.apache.camel.processor.interceptor.TraceInterceptor;
@ -16,21 +17,46 @@ import java.util.Map;
public class TracerFormatter extends DefaultTraceFormatter {
    @Override
    public Object format(TraceInterceptor interceptor, ProcessorDefinition<?> node, Exchange exchange) {
        System.out.println(exchange.getIn().getBody());
        ObjectMapper objectMapper = new ObjectMapper();
        try {
//            return objectMapper.writeValueAsString(exchange.getIn().getHeaders());
            ObjectNode objectNode = objectMapper.createObjectNode();
            Map<String, Object> headers = exchange.getIn().getHeaders();
            headers.forEach((key, value) -> {
                if (value == null) {
                    return;
            ObjectNode rootNode = objectMapper.createObjectNode();
            {
                Message in = exchange.getIn();
                ObjectNode inNode = rootNode.with("in");
                Map<String, Object> headers = in.getHeaders();
                headers.forEach((key, value) -> {
                    if (value == null) {
                        return;
                    }
                    inNode.put(key, value.toString());
                });
                if (in.getBody() != null) {
                    inNode.put("body", in.getBody(String.class));
                }
            }
                objectNode.put(key, value.toString());
            });
            {
                ObjectNode outNode = rootNode.with("out");
                Message out = exchange.getOut();
                Map<String, Object> headers = out.getHeaders();
                headers.forEach((key, value) -> {
                    if (value == null) {
                        return;
                    }
                    outNode.put(key, value.toString());
                });
                if (out.getBody() != null) {
                    outNode.put("body", out.getBody(String.class));
                }
            }
            return objectMapper.writeValueAsString(objectNode);
            return objectMapper.writeValueAsString(rootNode);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

+ 1 - 1
hos-camel2/src/main/resources/logback-spring.xml

@ -17,7 +17,7 @@
        <InitialContextFactoryName>
            org.apache.activemq.jndi.ActiveMQInitialContextFactory
        </InitialContextFactoryName>
        <ProviderURL>tcp://172.19.103.57:61616</ProviderURL>
        <ProviderURL>tcp://172.19.103.42:61616</ProviderURL>
        <userName>admin</userName>
        <password>admin</password>
        <TopicConnectionFactoryBindingName>ConnectionFactory</TopicConnectionFactoryBindingName>