Browse Source

路由编排日志调试

lingfeng 8 years ago
parent
commit
bc2dff07d9

+ 2 - 6
hos-broker/pom.xml

@ -55,15 +55,11 @@
			<groupId>com.yihu.hos</groupId>
			<artifactId>hos-web-framework</artifactId>
			<version>1.1.1-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.camel/camel-stream -->
	</dependencies>
	<build>
		<plugins>
			<plugin>

+ 78 - 0
hos-broker/src/main/java/com/yihu/hos/common/format/PatternLayout.java

@ -0,0 +1,78 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.yihu.hos.common.format;
import com.yihu.hos.common.constants.Constant;
import com.yihu.hos.core.datatype.DateUtil;
import com.yihu.hos.core.datatype.StringUtil;
import net.sf.json.JSONObject;
import org.apache.log4j.Layout;
import org.apache.log4j.helpers.PatternConverter;
import org.apache.log4j.helpers.PatternParser;
import org.apache.log4j.spi.LoggingEvent;
import java.util.HashMap;
import java.util.Map;
public class PatternLayout extends Layout {
    public static final String DEFAULT_CONVERSION_PATTERN = "%m%n";
    public static final String TTCC_CONVERSION_PATTERN = "%r [%t] %p %c %x - %m%n";
    protected final int BUF_SIZE;
    protected final int MAX_CAPACITY;
    private StringBuffer sbuf;
    private String pattern;
    private PatternConverter head;
    public PatternLayout() {
        this("%m%n");
    }
    public PatternLayout(String pattern) {
        this.BUF_SIZE = 256;
        this.MAX_CAPACITY = 1024;
        this.sbuf = new StringBuffer(256);
        this.pattern = pattern;
        this.head = this.createPatternParser(pattern == null?"%m%n":pattern).parse();
    }
    public void setConversionPattern(String conversionPattern) {
        this.pattern = conversionPattern;
        this.head = this.createPatternParser(conversionPattern).parse();
    }
    public String getConversionPattern() {
        return this.pattern;
    }
    public void activateOptions() {
    }
    public boolean ignoresThrowable() {
        return true;
    }
    protected PatternParser createPatternParser(String pattern) {
        return new PatternParser(pattern);
    }
    public String format(LoggingEvent event) {
        if (StringUtil.isEmpty(event.getMDC("camel.messageId"))) {
            return Constant.EMPTY;
        }
        String message = event.getMessage().toString();
        String body = message.substring(message.indexOf("Body:") + 5);
        Map<String, String> map = new HashMap<String, String>();
        map.put("exchangeId", StringUtil.toString(event.getMDC("camel.exchangeId")));
        map.put("correlationId", StringUtil.toString(event.getMDC("camel.correlationId")));
        map.put("transactionKey", StringUtil.toString(event.getMDC("camel.transactionKey")));
        map.put("routeId", StringUtil.toString(event.getMDC("camel.routeId")));
        map.put("breadcrumbId",StringUtil.toString(event.getMDC("camel.breadcrumbId")));
        map.put("camelContextId", StringUtil.toString(event.getMDC("camel.contextId")));
        map.put("body", body);
        map.put("fireTime", DateUtil.getCurrentString());
        return JSONObject.fromObject(map).toString() + "\n";
    }
}

+ 4 - 3
hos-broker/src/main/java/com/yihu/hos/common/listener/ApplicationStartListener.java

@ -105,8 +105,6 @@ public class ApplicationStartListener implements ApplicationListener<ContextRefr
        }
        // 4、=============
        // 首先启动Apache Camel服务
        SystemCamelContext.getDefaultCamelContext().start();
        SystemCamelContext.getDefaultCamelContext().setUseMDCLogging(true);
        logger.info("Apache Camel Context 启动完成......");
        // 加载和设置ClassLoader
        List<URL> URLs = new ArrayList<>();
@ -118,7 +116,8 @@ public class ApplicationStartListener implements ApplicationListener<ContextRefr
        Thread.currentThread().setContextClassLoader(camelESBClassLoader);
        SystemCamelContext.getDefaultCamelContext().setApplicationContextClassLoader(camelESBClassLoader);
        // 然后就可以进行RouteBuilder的加载
        SystemCamelContext.getDefaultCamelContext().setTracing(true);
        SystemCamelContext.getDefaultCamelContext().setUseMDCLogging(true);
        for (RouteBuilder routeBuilder : alreadyRouteBuilders) {
            try {
                SystemCamelContext.getDefaultCamelContext().addRoutes(routeBuilder);
@ -126,5 +125,7 @@ public class ApplicationStartListener implements ApplicationListener<ContextRefr
                logger.warn(e.getMessage(), e);
            }
        }
        SystemCamelContext.getDefaultCamelContext().start();
    }
}

+ 1 - 1
hos-broker/src/main/resources/jndi.properties

@ -1 +1 @@
topic.logTopic=logTopic2
topic.logTopic=business.log.queue

+ 8 - 7
hos-broker/src/main/resources/log4j.properties

@ -18,16 +18,16 @@
#
# The logging properties used for testing.
#
log4j.rootLogger=INFO, stdout, jms
log4j.rootLogger=INFO, jms
# uncomment the following to enable camel debugging
#log4j.logger.org.apache.camel.component.http4=DEBUG
# CONSOLE appender not used by default
log4j.logger.org.apache.activemq=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p %c - %m%n
log4j.appender.out=org.apache.log4j.ConsoleAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
@ -35,6 +35,7 @@ log4j.appender.jms.ProviderURL=tcp://172.19.103.86:61616
log4j.appender.jms.TopicBindingName=logTopic
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory
log4j.appender.jms.layout=org.apache.log4j.patternLayout
log4j.appender.jms.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - camel.exchangeId:%-10.10X{camel.exchangeId} - camel.routeId:%-10.10X{camel.routeId} - %m%n
log4j.appender.jms.layout.ConversionPattern=%m%n
log4j.appender.jms.userName=admin
log4j.appender.jms.password=admin

+ 1 - 1
hos-core-dependencies/pom.xml

@ -22,7 +22,7 @@
    </build>
    <properties>
        <!--<jackson.version>2.4.6</jackson.version>-->
        <log4j.version>1.2.14</log4j.version>
        <log4j.version>1.2.17</log4j.version>
        <log4j2.version>2.4.1</log4j2.version>
        <slf4j.version>1.7.21</slf4j.version>
    </properties>

+ 0 - 6
hos-core/src/main/java/com/yihu/hos/core/datatype/ClassFileUtil.java

@ -1,7 +1,5 @@
package com.yihu.hos.core.datatype;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.File;
import java.io.FileInputStream;
@ -17,7 +15,6 @@ public class ClassFileUtil {
    }
    private static Logger logger = LogManager.getLogger();
    /**
     * 通过这个工具方法,可以进行class文件的创建
     * @param systemFlowURL 本次进行系统创建的system业务系统存储class文件的根目录
@ -54,7 +51,6 @@ public class ClassFileUtil {
            out.close();
            in.close();
        } catch (Exception e) {
            logger.error(e.getMessage() , e);
            return;
        }
    }
@ -78,7 +74,6 @@ public class ClassFileUtil {
            out.close();
            in.close();
        } catch (Exception e) {
            logger.error(e.getMessage() , e);
            return;
        }
    }
@ -91,7 +86,6 @@ public class ClassFileUtil {
                file.delete();
            }
        } catch (Exception e) {
            logger.error(e.getMessage() , e);
            return;
        }
    }

+ 13 - 12
hos-web-framework-dependencies/pom.xml

@ -19,6 +19,8 @@
        <camel.version>2.17.1</camel.version>
        <spring.version>4.3.2.RELEASE</spring.version>
        <hibernate.version>5.0.9.Final</hibernate.version>
        <camel.osgi.export.pkg>org.apache.camel.dataformat.xmljson.*</camel.osgi.export.pkg>
        <camel.osgi.export.service>org.apache.camel.spi.DataFormatResolver;dataformat=xmljson</camel.osgi.export.service>
        <!--<spring.security.version>4.0.2.RELEASE</spring.security.version>-->
    </properties>
@ -74,6 +76,10 @@
                    <groupId>org.slf4j</groupId>
                    <artifactId>log4j-over-slf4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
@ -108,6 +114,11 @@
        </dependency>
        <!-- camel start -->
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-core</artifactId>
            <version>${camel.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-spring-boot</artifactId>
@ -196,18 +207,8 @@
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-pool</artifactId>
            <version>5.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-camel</artifactId>
            <version>5.13.2</version>
            <artifactId>activemq-all</artifactId>
            <version>5.13.3</version>
        </dependency>
        <!-- test start -->
        <dependency>