parent pom
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stone.demo</groupId>
<artifactId>demo-parent</artifactId>
<version>1.1.1</version>
<packaging>pom</packaging>
<modules>
<module>demo-service</module>
<module>demo-base</module>
<module>demo-common</module>
<module>demo-domain</module>
</modules>
<properties>
<!-- 文件拷贝时的编码 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- maven编译时的编码 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- maven编译插件版本 -->
<maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
<!-- maven打包插件版本 -->
<maven.assembly.plugin.version>3.0.0</maven.assembly.plugin.version>
<!-- jdk版本 -->
<java.version>1.7</java.version>
<!-- spring cloud版本 -->
<spring.cloud.version>Camden.RELEASE</spring.cloud.version>
<!-- spring boot版本 -->
<spring.boot.version>1.3.8.RELEASE</spring.boot.version>
<mybatis.spring.boot>1.1.1</mybatis.spring.boot>
<mysql.connector.java>5.1.38</mysql.connector.java>
<com.alibaba.druid>1.0.18</com.alibaba.druid>
<com.alibaba.fastjson.version>1.2.29</com.alibaba.fastjson.version>
<mybatis.pagehelper.version>4.0.1</mybatis.pagehelper.version>
<!-- activit -->
<activiti.version>5.22.0</activiti.version>
<http.client.version>1.9.15</http.client.version>
<jdom.version>2.0.5</jdom.version>
<commons-io.version>2.5</commons-io.version>
<client.util.version>1.0.3</client.util.version>
<logging.version>1.2</logging.version>
<scheduler.version>2.2.1</scheduler.version>
<httpcomponents.httpclient.version>4.4.1</httpcomponents.httpclient.version>
<mail.version>1.5.2</mail.version>
<commons.codec.version>1.9</commons.codec.version>
<springsource.commons.collections.version>3.2.0</springsource.commons.collections.version>
<!-- activity uuid -->
<com.fasterxml.uuid.generator.version>3.1.0</com.fasterxml.uuid.generator.version>
<beanutils.version>1.9.2</beanutils.version>
<demo.sdk.version>1.1.1</demo.sdk.version>
<junit.version>4.12</junit.version>
<powermock.version>1.6.6</powermock.version>
<springbootstartertest.version>1.5.2.RELEASE</springbootstartertest.version>
<spring-boot-starter-web.version>1.5.2.RELEASE</spring-boot-starter-web.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>4.3.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven.assembly.plugin.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring.boot}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${com.alibaba.fastjson.version}</version>
</dependency>
<!-- demo -->
<dependency>
<groupId>com.stone.demo</groupId>
<artifactId>demo-common</artifactId>
<version>${demo.sdk.version}</version>
</dependency>
<dependency>
<groupId>com.stone.demo</groupId>
<artifactId>demo-base</artifactId>
<version>${demo.sdk.version}</version>
</dependency>
<dependency>
<groupId>com.stone.demo</groupId>
<artifactId>demo-domain</artifactId>
<version>${demo.sdk.version}</version>
</dependency>
<!-- mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.java}</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${com.alibaba.druid}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${mybatis.pagehelper.version}</version>
</dependency>
<dependency>
<groupId>com.ning</groupId>
<artifactId>async-http-client</artifactId>
<version>${http.client.version}</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.25-incubating</version>
</dependency>
<!-- activiti工作流jar包 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-explorer</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-simple-workflow</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-rest</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
<version>${activiti.version}</version>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>${jdom.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${beanutils.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${logging.version}</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>${scheduler.version}</version>
</dependency>
<!-- 解决编译问题 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpcomponents.httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>${httpcomponents.httpclient.version}</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${mail.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons.codec.version}</version>
</dependency>
<!-- activity uuid -->
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<version>${com.fasterxml.uuid.generator.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--发布 -->
<distributionManagement>
<repository>
<id>thirdparty</id>
<name>thirdparty</name>
<url>http://host:port/nexus/content/repositories/thirdparty/</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${maven.compiler.encoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
module pom
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>activiti-service</artifactId>
<parent>
<groupId>com.stone.demo</groupId>
<artifactId>demo-parent</artifactId>
<version>1.1.1</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- activiti begin -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-rest</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<exclusions>
<exclusion>
<artifactId>commons-dbcp</artifactId>
<groupId>commons-dbcp</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-explorer</artifactId>
<exclusions>
<exclusion>
<artifactId>vaadin</artifactId>
<groupId>com.vaadin</groupId>
</exclusion>
<exclusion>
<artifactId>dcharts-widget</artifactId>
<groupId>org.vaadin.addons</groupId>
</exclusion>
<exclusion>
<artifactId>activiti-simple-workflow</artifactId>
<groupId>org.activiti</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-modeler</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-diagram-rest</artifactId>
</dependency>
<!-- activiti end -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<!-- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.7</version>
</dependency> -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>com.stone.demo</groupId>
<artifactId>demo-common</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
</dependency>
<!-- activity uuid -->
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
</dependency>
<dependency>
<groupId>com.stone.basecloud.cloudsoa</groupId>
<artifactId>cloudsoa-security</artifactId>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>com/**/*.*</include>
</includes>
<excludes>
<exclude>config/**/*.*</exclude>
<exclude>config/*.*</exclude>
<exclude>*.xml</exclude>
<exclude>*.properties</exclude>
<exclude>*.json</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
assembly xml
<?xml version="1.0"?>
<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
<id>package</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>bin</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources/config</directory>
<outputDirectory>config</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/logs</directory>
<outputDirectory>logs</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
maven setting
<?xml version="1.0" encoding="utf-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:\MavenHome</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers>
<server>
<id>thirdparty</id>
<username>dev</username>
<password>dev</password>
</server>
<server>
<id>snapshots</id>
<username>dev</username>
<password>dev</password>
</server>
</servers>
<mirrors>
<mirror>
<id>central-repository</id>
<name>Central Repository Manager</name>
<url>http://host:port/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!--profiles-->
<profiles>
<profile>
<id>open-gateway</id>
<!--repositories-->
<repositories>
<repository>
<id>demo-maven-proxy</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<!-- <updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy> -->
</snapshots>
<url>http://host:port/nexus/content/groups/public/</url>
</repository>
<repository>
<id>thirdparty</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>http://host:port/nexus/content/repositories/thirdparty/</url>
</repository>
<repository>
<id>snapshots</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>http://host:port/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<!--pluginRepositories-->
<pluginRepositories>
<pluginRepository>
<id>demo-plugin-proxy</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<!-- <updatePolicy>never</updatePolicy> -->
</snapshots>
<url>http://host:port/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!--activeProfiles> -->
<activeProfiles>
<activeProfile>open-gateway</activeProfile>
</activeProfiles>
</settings>
server.sh
#!/bin/sh
MAIN_CLASS=com.stone.demo.service.demo.Application
JVM_ARGS="-server -Xmx512m -Xms512m -Xmn200m -XX:PermSize=256m -XX:MaxPermSize=512m"
basepath=$(cd `dirname $0`/../; pwd)
echo "basepath="$basepath
##HOMES
LIB_HOME=$basepath/lib
CONF_HOME=$basepath/config
CLASSPATH_HOME=$basepath
LOG_HOME=$basepath/logs
CLASSPATH=$LIB_HOME:$CLASSPATH_HOME:$CONF_HOME
## files loading
for jar in $LIB_HOME/*.jar
do CLASSPATH=$CLASSPATH:$jar
done
for xml in $CONF_HOME/*.xml
do CLASSPATH=$CLASSPATH:$xml
done
for json in $CONF_HOME/*.json
do CLASSPATH=$CLASSPATH:$json
done
for env in $CONF_HOME/*.properties
do CLASSPATH=$CLASSPATH:$env
done
export CLASSPATH
start(){
if [ -f "$LOG_HOME/server.pid" ] ; then
echo "############ Application of '"$MAIN_CLASS"' was running already!############"
else
cd $LIB_HOME
echo "############'"$MAIN_CLASS"' starting....############"
echo $CLASSPATH
#nohup java $JVM_ARGS -cp $CLASSPATH $MAIN_CLASS > $LOG_HOME/server_`date '+%Y-%m-%d'`.log 2>&1 &
nohup java $JVM_ARGS -cp $CLASSPATH $MAIN_CLASS > /dev/null 2>&1 &
echo $! > $LOG_HOME/server.pid
echo "########### Application of '"$MAIN_CLASS"' started successful at:"`date '+%Y-%m-%d %T'`"############"
#tail -f $LOG_HOME/server_`date '+%Y-%m-%d'`.log
fi
}
stop(){
if [ -f "$LOG_HOME/server.pid" ] ; then
echo "############ Application of '"$MAIN_CLASS" stoping....############"
kill -9 `cat $LOG_HOME/server.pid`
sleep 1
rm -rf $LOG_HOME/server.pid
echo "########### Application of '"$MAIN_CLASS"' was stoped at:"`date '+%Y-%m-%d %T'`"############"
else
echo "########### Application of '"$MAIN_CLASS"' is not running. ############"
fi;
}
case $1 in
"-s" | "--start")
start;
;;
"-h" | "--stop")
stop;
;;
"-r" | "-- restart")
echo "############ Application of '"$MAIN_CLASS"' restarting....############"
stop;
sleep 1
start;
;;
*)
echo "Usage: server.sh {[--start,-s]|[--stop,-h]|[--restart,-r]}"
;;
esac
exit 0
application.properties
spring.application.name=demo-service
server.port=9001
#########################DB配置--begin##################################
# 驱动配置信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://192.168.1.5:3306/demo?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#连接池的配置信息
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
#########################DB配置--end####################################
# 配置服务注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
security.basic.enabled=false
#########################日志配置--begin##################################
#日志配置文件的路径,本机改为"classpath:config/logback-spring.xml"
logging.config=classpath:config/logback-spring.xml
##########################日志配置--end####################################
eureka.instance.preferIpAddress=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}
#超时时间(默认1000ms,单位:ms)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=30000
ribbon.ReadTimeout=30000
ribbon.ConnectTimeout=30000
logback-spring.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration scan="true" sacnPeriod="60 seconds" debug="false">
<!-- 日志目录 -->
<property name="LOG_HOME" value="/opt/services/demo-service/logs" />
<property name="applicationType" value="omp" />
<property name="serverName" value="demo" />
<property name="IP" value="192.168.1.2" />
<property name="threadName" value="demo" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender>
<appender name="FILEDEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/debug/${applicationType}_${serverName}_${IP}_${threadName}_debug_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>31</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/info/${applicationType}_${serverName}_${IP}_${threadName}_info_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>31</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/warn/${applicationType}_${serverName}_${IP}_${threadName}_warn_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>31</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/error/${applicationType}_${serverName}_${IP}_${threadName}_error_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>31</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="org.mybatis" level="WARN" />
<logger name="org.hibernate" level="WARN" />
<logger name="org.apache" level="WARN" />
<logger name="com.netflix" level="WARN" />
<logger name="springfox.documentation" level="WARN" />
<logger name="com.ulisesbocchio" level="WARN" />
<logger name="com.stone" level="INFO" />
<!-- 日志输出级别 -->
<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<root level="INFO">
<appender-ref ref="FILEDEBUG" />
<appender-ref ref="FILEINFO" />
<appender-ref ref="FILEWARN" />
<appender-ref ref="FILEERROR" />
<!-- 生产环境将请stdout去掉 -->
<!-- <appender-ref ref="STDOUT" /> -->
</root>
</configuration>