Pārlūkot izejas kodu

Merge branch 'dev' of LiTaohong/jkzl-start into dev

chenweida 7 gadi atpakaļ
vecāks
revīzija
912cb4156d

+ 9 - 1
common-logback-starter/pom.xml

@ -11,7 +11,7 @@
    </parent>
    <artifactId>common-logback-starter</artifactId>
    <version>1.0.0</version>
    <version>1.0.1</version>
    <dependencies>
        <dependency>
@ -26,5 +26,13 @@
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>common-data-es-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.yihu</groupId>
            <artifactId>common-activemq-starter</artifactId>
        </dependency>
    </dependencies>
</project>

+ 38 - 0
common-logback-starter/src/main/java/com.yihu.base/Log2ESMessageListener.java

@ -0,0 +1,38 @@
package com.yihu.base;
import com.yihu.base.activemq.ActiveMQHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.PostConstruct;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
public class Log2ESMessageListener implements MessageListener{
    @Autowired
    private ActiveMQHelper activeMQHelper;
    @Autowired
    private Log2ElasticsearchUtils log2ElasticsearchUtils;
    @Value("${log2es.activemq.queueName}")
    private String queueName;
    @PostConstruct
    public void init(){
        activeMQHelper.addListener(queueName, new Log2ESMessageListener());
    }
    @Override
    public void onMessage(Message message) {
        TextMessage textMessage = (TextMessage) message;
        try {
            log2ElasticsearchUtils.toElastisearch(textMessage.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

+ 37 - 0
common-logback-starter/src/main/java/com.yihu.base/Log2ElasticsearchAppender.java

@ -0,0 +1,37 @@
package com.yihu.base;
import ch.qos.logback.core.rolling.RollingFileAppender;
import ch.qos.logback.core.rolling.TriggeringPolicy;
import com.yihu.base.activemq.ActiveMQHelper;
import com.yihu.base.es.config.ElasticFactory;
import com.yihu.base.es.config.ElastricSearchHelper;
import org.apache.commons.lang.StringUtils;
import org.slf4j.event.LoggingEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
public class Log2ElasticsearchAppender<E> extends RollingFileAppender{
    @Autowired
    private Log2ElasticsearchUtils log2ElasticsearchUtils;
    @Autowired
    private ActiveMQHelper activeMQHelper;
    @Value("${log2es.activemq.queueName}")
    private String queueName;
    public Log2ElasticsearchAppender() {
    }
    @Override
    protected void append(Object event) {
        if(log2ElasticsearchUtils.checkEsConnection()){
            LoggingEvent loggingEvent = (LoggingEvent)event;
            activeMQHelper.send(queueName,loggingEvent.getMessage());
            return;
        }
        super.subAppend(event);
    }
}

+ 42 - 0
common-logback-starter/src/main/java/com.yihu.base/Log2ElasticsearchUtils.java

@ -0,0 +1,42 @@
package com.yihu.base;
import com.yihu.base.es.config.ElasticFactory;
import com.yihu.base.es.config.ElastricSearchHelper;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class Log2ElasticsearchUtils {
    @Autowired
    private ElasticFactory elasticFactory;
    @Autowired
    private ElastricSearchHelper elastricSearchHelper;
    @Value("${log2es.index}")
    private String esIndex;
    @Value("${log2es.type}")
    private String estype;
    public boolean checkEsConnection(){
        try {
            if(null != elasticFactory.getJestClient()){
                return true;
            }
        }catch (Exception e){
            return false;
        }
        return false;
    }
    public void toElastisearch(String data){
        if(StringUtils.isNotEmpty(esIndex) && StringUtils.isNotEmpty(estype)){
            elastricSearchHelper.save(esIndex,estype,data);
        }
    }
}

+ 11 - 17
common-logback-starter/src/main/resources/consoleAppender_logback_demo.xml

@ -6,29 +6,23 @@
-->
<configuration scan="true" scanPeriod="6000" debug="false">
    <root>
        <level value="INFO" />
  <!--  <root>
        <level value="INFO"/>
    </root>
    <!--
    &lt;!&ndash;
    name:logger的名称
    level:输出级别是INFO
    additivity属性为false,表示此loger的打印信息不再向上级传递,是否继承父类的日志级别
    -->
    <logger name="demo1" level="INFO" additivity="false" >
        <appender-ref ref="dailyRollingFileAppender" />
    &ndash;&gt;
    <logger name="demo1" level="INFO" additivity="false">
        <appender-ref ref="dailyRollingFileAppender"/>
    </logger>
    <!-- 演示按时间滚动的策略 -->
    <appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${logbase}/usercenter.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>${logbase}/dailyRollingFileAppender.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 保留 30天数据,默认无限-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    &lt;!&ndash; 输出到控制面板 &ndash;&gt;
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
        </encoder>
    </appender>
    </appender>-->
</configuration>

+ 15 - 7
common-logback-starter/src/main/resources/dailyRollingFileAppender_logback_demo.xml

@ -7,21 +7,29 @@
<configuration scan="true" scanPeriod="6000" debug="false">
    <root>
        <level value="INFO"/>
        <level value="INFO" />
        <appender-ref ref="dailyRollingFileAppender" />
    </root>
    <!--
    name:logger的名称
    level:输出级别是INFO
    additivity属性为false,表示此loger的打印信息不再向上级传递,是否继承父类的日志级别
    -->
    <logger name="demo1" level="INFO" additivity="false">
        <appender-ref ref="dailyRollingFileAppender"/>
    <logger name="demo1" level="INFO" additivity="false" >
        <appender-ref ref="dailyRollingFileAppender" />
    </logger>
    <!-- 输出到控制面板 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- 演示按时间滚动的策略 -->
    <appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${logbase}/usercenter.log</File>
        <!--<File>C:/logbackLog/usercenter.log</File>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>${logbase}/dailyRollingFileAppender.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 保留 30天数据,默认无限-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
    </appender>

+ 33 - 0
common-logback-starter/src/main/resources/logback.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="6000" debug="true" >
    <!--
    name:logger的名称
    level:输出级别是INFO
    additivity属性为false,表示此loger的打印信息不再向上级传递,是否继承父类的日志级别
    -->
    <property name="LOG_HOME" value="C:/logbackLog" />
    <!-- 演示按时间滚动的策略 -->
    <appender name="dailyRollingFileAppender" class="com.yihu.base.Log2ElasticsearchAppender">
    <!--<appender name="dailyRollingFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
        <File>${LOG_HOME}/usercenter.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>${LOG_HOME}/dailyRollingFileAppender.%d{yyyy-MM-dd}.log</FileNamePattern>
            <!-- 保留 30天数据,默认无限-->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern>
        </encoder>
    </appender>
     <logger name="demo1" level="INFO" additivity="false" >
      <appender-ref ref="dailyRollingFileAppender" />
     </logger>
    <root>
        <level value="INFO" />
        <appender-ref ref="dailyRollingFileAppender" />
    </root>
</configuration>

+ 5 - 0
common-logback-starter/src/main/resources/template.yml

@ -0,0 +1,5 @@
log2es:
  index: log_index
  type: log_type
  activemq:
    queueName: myQueue