Procházet zdrojové kódy

本地版配置修改

xiewj před 3 roky
rodič
revize
40fc9cbb95

+ 1 - 1
pom.xml

@@ -11,7 +11,7 @@
     </parent>
 
     <groupId>com.fdkankan</groupId>
-    <artifactId>4dkankan-center-scene</artifactId>
+    <artifactId>fdkk-v4</artifactId>
     <version>2.0.0-SNAPSHOT</version>
 
     <repositories>

+ 20 - 1
src/main/java/com/fdkankan/scene/SceneApplication.java

@@ -1,17 +1,36 @@
 package com.fdkankan.scene;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.fdkankan.scene.config.FdkkLaserConfig;
+import lombok.extern.slf4j.Slf4j;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
 @SpringBootApplication
 @EnableTransactionManagement//开启事务
 @ComponentScan(basePackages = {"com.fdkankan.*"})
 @MapperScan("com.fdkankan.**.mapper")
+@Slf4j
 public class SceneApplication {
-    public static void main(String[] args) {
+    public static void main(String[] args) throws IOException {
         SpringApplication.run(SceneApplication.class, args);
+        log.info("项目启动成功");
+
+        FdkkLaserConfig fdkkLaserConfig = SpringUtil.getBean(FdkkLaserConfig.class);
+        String stateConfigOne = fdkkLaserConfig.getBinPath() + File.separator + ".v4state";
+        if (FileUtil.exist(stateConfigOne)) {
+            log.info("state文件存在");
+            FileWriter writer = new FileWriter(FileUtil.file(stateConfigOne));
+            writer.write("1");
+            writer.flush();
+        }
     }
 }

+ 97 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,97 @@
+# 项目相关配置
+fdkk:
+  # 文件路径 示例( Windows配置D:/fdkk/uploadPath,Linux配置 /home/fdkk/uploadPath)
+  profile: ${PROFILE_PATH}
+  #算法软件目录
+  binPath: ${BIN_PATH}
+  defaultFolder: datav1
+  # 是否本地化部署:开启此项会使用minio文件管理
+  isLocalization: true
+  # 是否使用文件存储系统
+  isBucket: false
+  #是否使用软连接
+  isLink: false
+aliyun:
+  oss:
+    env: dev
+    endpoint: "1"
+    internal-endpoint: "1"
+    access-key-id: "1"
+    access-key-secret: "1"
+    bucket: laser-data
+    bucket-custom-domain:
+      laser-data: 1
+minio:
+  oss:
+    env: dev
+    minio-url: 1
+    internal-minio-url: 1
+    minio-name: 1
+    minio-pass: 1
+    bucket: laser-data
+    bucket-custom-domain:
+      laser-data: 1
+server:
+  port: 8085
+  servlet:
+    context-path: /
+  tomcat:
+    max-http-form-post-size: -1
+spring:
+  jackson:
+    serialization:
+      #关闭jackson转换 实体属性空值校验
+      FAIL_ON_EMPTY_BEANS: false
+      # write-dates-as-timestamps: true    ##开启时间转换为时间戳,默认true
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  datasource:
+    name: druidDataSource
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      druid:
+      url: jdbc:mysql://192.168.0.211:13306/4dkankan_v4?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+      username: root
+      password: 4dkk2020cuikuan%
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      filters: stat,wall,config
+      max-active: 100
+      initial-size: 2
+      max-wait: 60000
+      min-idle: 1
+      time-between-eviction-runs-millis: 60000
+      min-evictable-idle-time-millis: 300000
+      validation-query: select 'x'
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+      pool-prepared-statements: true
+      max-open-prepared-statements: 50
+      max-pool-prepared-statement-per-connection-size: 20
+  redis:
+    host: 192.168.0.211
+    port: 6379
+    timeout: 6000ms
+    jedis:
+      pool:
+        max-active: 10  #连接池最大连接数(使用负值表示没有限制)
+        max-idle: 10 # 连接池中的最大空闲连接
+        min-idle: 5 # 连接池中的最小空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+    lettuce:
+      shutdown-timeout: 0ms
+logging:
+  config: classpath:logback-spring.xml
+  path: /mnt/4Dkankan/v4/logs
+
+main:
+  url: https://test.4dkankan.com
+scene:
+  url: show.html?m=
+  pro:
+    url: showProMobile.html?m=
+    new:
+      url: smg.html?m=
+
+
+

+ 100 - 0
src/main/resources/application-standAloneProd.yml

@@ -0,0 +1,100 @@
+# 项目相关配置
+fdkk:
+  # 文件路径 示例( Windows配置D:/fdkk/uploadPath,Linux配置 /home/fdkk/uploadPath)
+  profile: ${PROFILE_PATH}
+  #算法软件目录
+  binPath: ${BIN_PATH}
+  defaultFolder: datav1
+  # 是否本地化部署:开启此项会使用minio文件管理
+  isLocalization: true
+  # 是否使用文件存储系统
+  isBucket: false
+  #是否使用软连接
+  isLink: false
+aliyun:
+  oss:
+    env: dev
+    endpoint: "1"
+    internal-endpoint: "1"
+    access-key-id: "1"
+    access-key-secret: "1"
+    bucket: laser-data
+    bucket-custom-domain:
+      laser-data: 1
+minio:
+  oss:
+    env: dev
+    minio-url: 1
+    internal-minio-url: 1
+    minio-name: 1
+    minio-pass: 1
+    bucket: laser-data
+    bucket-custom-domain:
+      laser-data: 1
+server:
+  port: 8085
+  servlet:
+    context-path: /
+  tomcat:
+    max-http-form-post-size: -1
+spring:
+  jackson:
+    serialization:
+      #关闭jackson转换 实体属性空值校验
+      FAIL_ON_EMPTY_BEANS: false
+      # write-dates-as-timestamps: true    ##开启时间转换为时间戳,默认true
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  datasource:
+    name: druidDataSource
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      druid:
+      url: jdbc:mysql://127.0.0.1:3307/laser?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+      username: root
+      password: laser
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      filters: stat,wall,config
+      max-active: 100
+      initial-size: 2
+      max-wait: 60000
+      min-idle: 1
+      time-between-eviction-runs-millis: 60000
+      min-evictable-idle-time-millis: 300000
+      validation-query: select 'x'
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+      pool-prepared-statements: true
+      max-open-prepared-statements: 50
+      max-pool-prepared-statement-per-connection-size: 20
+  redis:
+    host: 127.0.0.1
+    port: 16379
+    timeout: 6000ms
+    jedis:
+      pool:
+        max-active: 10  #连接池最大连接数(使用负值表示没有限制)
+        max-idle: 10 # 连接池中的最大空闲连接
+        min-idle: 5 # 连接池中的最小空闲连接
+        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
+    lettuce:
+      shutdown-timeout: 0ms
+logging:
+  config: classpath:logback-spring.xml
+  fdkk:
+    maxHistory: 1
+    level: off
+  path: ${4DKK_HOME}/log
+
+main:
+  url: https://test.4dkankan.com
+scene:
+  url: show.html?m=
+  pro:
+    url: showProMobile.html?m=
+    new:
+      url: smg.html?m=
+
+
+

+ 2 - 100
src/main/resources/application.yml

@@ -1,103 +1,5 @@
-# 项目相关配置
-fdkk:
-  # 文件路径 示例( Windows配置D:/fdkk/uploadPath,Linux配置 /home/fdkk/uploadPath)
-  profile: ${PROFILE_PATH}
-  #算法软件目录
-  binPath: ${BIN_PATH}
-  defaultFolder: datav1
-  # 是否本地化部署:开启此项会使用minio文件管理
-  isLocalization: true
-  # 是否使用文件存储系统
-  isBucket: false
-  #是否使用软连接
-  isLink: false
-aliyun:
-  oss:
-    env: dev
-    endpoint: "1"
-    internal-endpoint: "1"
-    access-key-id: "1"
-    access-key-secret: "1"
-    bucket: laser-data
-    bucket-custom-domain:
-      laser-data: 1
-minio:
-  oss:
-    env: dev
-    minio-url: 1
-    internal-minio-url: 1
-    minio-name: 1
-    minio-pass: 1
-    bucket: laser-data
-    bucket-custom-domain:
-      laser-data: 1
-server:
-  port: 8085
-  servlet:
-    context-path: /
-  tomcat:
-    max-http-form-post-size: -1
 spring:
+  profiles:
+    active: dev
   jackson:
-    serialization:
-      #关闭jackson转换 实体属性空值校验
-      FAIL_ON_EMPTY_BEANS: false
-      # write-dates-as-timestamps: true    ##开启时间转换为时间戳,默认true
-    date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8
-  servlet:
-    multipart:
-      # 设置单个文件大小
-      max-file-size: 1024MB
-      # 设置单次请求文件的总大小
-      max-request-size: 1024MB
-  datasource:
-    name: druidDataSource
-    type: com.alibaba.druid.pool.DruidDataSource
-    druid:
-      druid:
-      url: jdbc:mysql://192.168.0.211:13306/4dkankan_v4?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
-      username: root
-      password: 4dkk2020cuikuan%
-      driver-class-name: com.mysql.cj.jdbc.Driver
-      filters: stat,wall,config
-      max-active: 100
-      initial-size: 2
-      max-wait: 60000
-      min-idle: 1
-      time-between-eviction-runs-millis: 60000
-      min-evictable-idle-time-millis: 300000
-      validation-query: select 'x'
-      test-while-idle: true
-      test-on-borrow: false
-      test-on-return: false
-      pool-prepared-statements: true
-      max-open-prepared-statements: 50
-      max-pool-prepared-statement-per-connection-size: 20
-  redis:
-    host: 192.168.0.211
-    port: 6379
-    timeout: 6000ms
-    jedis:
-      pool:
-        max-active: 10  #连接池最大连接数(使用负值表示没有限制)
-        max-idle: 10 # 连接池中的最大空闲连接
-        min-idle: 5 # 连接池中的最小空闲连接
-        max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
-    lettuce:
-      shutdown-timeout: 0ms
-logging:
-  config: classpath:logback-spring.xml
-  path: /mnt/4Dkankan/v4/logs
-
-main:
-  url: https://test.4dkankan.com
-scene:
-  url: show.html?m=
-  pro:
-    url: showProMobile.html?m=
-    new:
-      url: smg.html?m=
-
-
-

+ 121 - 281
src/main/resources/logback-spring.xml

@@ -1,324 +1,164 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
-<!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true -->
-<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
-<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
-<configuration scan="true" scanPeriod="10 seconds">
+<configuration>
+	<springProperty scope="context" name="LOG_MAX_HISTORY" source="logging.fdkk.maxHistory"/>
+	<!-- 日志根目录-->
+	<springProperty scope="context" name="LOG_HOME" source="logging.path"/>
 
-	<springProperty scope="context" name="LOG_PATH" source="logging.path"/>
+	<!-- 日志级别 -->
+	<springProperty scope="context" name="LOG_LEVEL" source="logging.fdkk.level" defaultValue="DEBUG"/>
 
-	<contextName>logback</contextName>
-	<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
-	<property name="log.path" value="${LOG_PATH}/scene" />
+	<!--  标识这个"STDOUT" 将会添加到这个logger -->
+	<springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
 
-	<!-- 彩色日志 -->
-	<!-- 彩色日志依赖的渲染类 -->
-	<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-	<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-	<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-	<!-- 彩色日志格式 -->
-	<property name="CONSOLE_LOG_PATTERN"
-		value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />
+	<!-- 日志文件名称-->
+	<property name="LOG_PREFIX" value="v4"/>
 
-	<!--输出到控制台 -->
-	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-		<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
-		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-			<level>info</level>
-		</filter>
-		<encoder>
-			<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
-			<!-- 设置字符集 -->
-			<charset>UTF-8</charset>
-		</encoder>
-	</appender>
-	<!--输出到文件 -->
+	<!-- 日志文件编码-->
+	<property name="LOG_CHARSET" value="UTF-8"/>
 
-	<!-- 时间滚动输出 level为 DEBUG 日志 -->
-	<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${log.path}/log_debug.log</file>
-		<!--日志文件输出格式 -->
-		<encoder>
-			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-			<charset>UTF-8</charset> <!-- 设置字符集 -->
-		</encoder>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<!-- 日志归档 -->
-			<fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-			<!--日志文件保留天数 -->
-			<maxHistory>15</maxHistory>
-		</rollingPolicy>
-		<!-- 此日志文件只记录debug级别的 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>debug</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
-	</appender>
+	<!-- 日志文件路径+日期-->
+	<property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}"/>
 
-	<appender name="ASYNC_DEBUG_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
-		<!--默认情况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持所有的events,设置该值为0。-->
-		<discardingThreshold>0</discardingThreshold>
-		<!--queue配置最大容量为256个events。如果队列被填满,应用程序线程被阻止记录新的events,直到工作线程有机会来转发一个或多个events。
-		因此队列深度需要根据业务场景进行相应的测试,做出相应的更改,以达到较好的性能。-->
-		<queueSize>2048</queueSize>
-		<includeCallerData>false</includeCallerData>
-		<appender-ref ref="DEBUG_FILE"/>
-	</appender>
+	<!--对日志进行格式化-->
+
+	<!--文件大小,默认10MB-->
+	<property name="MAX_FILE_SIZE" value="50MB"/>
+
+	<!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+	<property name="MAX_HISTORY" value="10"/>
 
-	<!-- 时间滚动输出 level为 INFO 日志 -->
-	<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${log.path}/log_info.log</file>
-		<!--日志文件输出格式 -->
-		<encoder>
+	<!--输出到控制台-->
+	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
 			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-			<charset>UTF-8</charset>
+			<charset>utf-8</charset>
 		</encoder>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<!-- 每天日志归档路径以及格式 -->
-			<fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-			<!--日志文件保留天数 -->
-			<maxHistory>15</maxHistory>
-		</rollingPolicy>
-		<!-- 此日志文件只记录info级别的 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>info</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
 	</appender>
-
-	<appender name="ASYNC_INFO_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
-		<!--默认情况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持所有的events,设置该值为0。-->
-		<discardingThreshold>0</discardingThreshold>
-		<!--queue配置最大容量为256个events。如果队列被填满,应用程序线程被阻止记录新的events,直到工作线程有机会来转发一个或多个events。
-		因此队列深度需要根据业务场景进行相应的测试,做出相应的更改,以达到较好的性能。-->
-		<queueSize>2048</queueSize>
-		<includeCallerData>false</includeCallerData>
-		<appender-ref ref="INFO_FILE"/>
+	<!--输出到文件-->
+	<appender name="0" class="ch.qos.logback.core.rolling.RollingFileAppender">
 	</appender>
 
-	<!-- 时间滚动输出 level为 WARN 日志 -->
-	<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${log.path}/log_warn.log</file>
-		<!--日志文件输出格式 -->
-		<encoder>
-			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
-		</encoder>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+	<!-- 定义 ALL 日志的输出方式:-->
+	<appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!--日志文件路径,日志文件名称-->
+		<File>${LOG_HOME}/all_${LOG_PREFIX}.log</File>
+		<!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
+			<!--日志文件路径,新的 ALL 日志文件名称,“ i ” 是个变量 -->
+			<FileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%i.log</FileNamePattern>
+
+			<!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+			<MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+			<cleanHistoryOnStart>true</cleanHistoryOnStart>
+			<!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
 			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
+				<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
 			</timeBasedFileNamingAndTriggeringPolicy>
-			<!--日志文件保留天数 -->
-			<maxHistory>15</maxHistory>
 		</rollingPolicy>
-		<!-- 此日志文件只记录warn级别的 -->
+		<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>utf-8</charset>
+		</encoder>
+	</appender>
+
+	<!-- 定义 INFO 日志的输出方式:-->
+	<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 下面为配置只输出error级别的日志 -->
 		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>warn</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
+			<level>INFO</level>
+			<OnMismatch>DENY</OnMismatch>
+			<OnMatch>ACCEPT</OnMatch>
 		</filter>
-	</appender>
+		<append>true</append>
+		<!--日志文件路径,日志文件名称-->
+		<File>${LOG_HOME}/info_${LOG_PREFIX}.log</File>
+		<!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 
-	<appender name="ASYNC_WARN_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
-		<!--默认情况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持所有的events,设置该值为0。-->
-		<discardingThreshold>0</discardingThreshold>
-		<!--queue配置最大容量为256个events。如果队列被填满,应用程序线程被阻止记录新的events,直到工作线程有机会来转发一个或多个events。
-		因此队列深度需要根据业务场景进行相应的测试,做出相应的更改,以达到较好的性能。-->
-		<queueSize>2048</queueSize>
-		<includeCallerData>false</includeCallerData>
-		<appender-ref ref="WARN_FILE"/>
-	</appender>
+			<!--日志文件路径,新的 INFO 日志文件名称,“ i ” 是个变量 -->
+			<FileNamePattern>${LOG_DIR}/info_${LOG_PREFIX}%i.log</FileNamePattern>
 
+			<!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+			<MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+			<cleanHistoryOnStart>true</cleanHistoryOnStart>
 
-	<!-- 时间滚动输出 level为 ERROR 日志 -->
-	<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${log.path}/log_error.log</file>
-		<!--日志文件输出格式 -->
-		<encoder>
-			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
-		</encoder>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
+			<!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
 			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
+				<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
 			</timeBasedFileNamingAndTriggeringPolicy>
-			<!--日志文件保留天数 -->
-			<maxHistory>15</maxHistory>
 		</rollingPolicy>
-		<!-- 此日志文件只记录ERROR级别的 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>ERROR</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
-	</appender>
-
-	<appender name="ASYNC_ERROR_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
-		<!--默认情况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持所有的events,设置该值为0。-->
-		<discardingThreshold>0</discardingThreshold>
-		<!--queue配置最大容量为256个events。如果队列被填满,应用程序线程被阻止记录新的events,直到工作线程有机会来转发一个或多个events。
-		因此队列深度需要根据业务场景进行相应的测试,做出相应的更改,以达到较好的性能。-->
-		<queueSize>2048</queueSize>
-		<includeCallerData>false</includeCallerData>
-		<appender-ref ref="ERROR_FILE"/>
-	</appender>
-
 
-	<appender name="VISIT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${log.path}/visit/log_visit.log</file>
-		<!--日志文件输出格式 -->
-		<encoder>
+		<!-- 输出的日志内容格式化-->
+		<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
 			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-			<charset>UTF-8</charset> <!-- 此处设置字符集 -->
+			<charset>utf-8</charset>
 		</encoder>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${log.path}/visit/log-visit-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
+	</appender>
 
-			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-			<!--日志文件保留天数 -->
-			<maxHistory>15</maxHistory>
-		</rollingPolicy>
-		<!-- 此日志文件只记录info级别的 -->
+	<!-- 定义 ERROR 日志的输出方式:-->
+	<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<!-- 下面为配置只输出error级别的日志 -->
 		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>info</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
+			<level>ERROR</level>
+			<OnMismatch>DENY</OnMismatch>
+			<OnMatch>ACCEPT</OnMatch>
 		</filter>
-	</appender>
-	<appender name="ASYNC_VISIT_FILE" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
-		<!--默认情况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持所有的events,设置该值为0。-->
-		<discardingThreshold>0</discardingThreshold>
-		<!--queue配置最大容量为256个events。如果队列被填满,应用程序线程被阻止记录新的events,直到工作线程有机会来转发一个或多个events。
-		因此队列深度需要根据业务场景进行相应的测试,做出相应的更改,以达到较好的性能。-->
-		<queueSize>2048</queueSize>
-		<includeCallerData>false</includeCallerData>
-		<appender-ref ref="VISIT_FILE"/>
-	</appender>
-	<logger name="visitLog" level="INFO" additivity="false">
-		<appender-ref ref="ASYNC_VISIT_FILE"/>
-	</logger>
+		<!--日志文件路径,日志文件名称-->
+		<File>${LOG_HOME}/err_${LOG_PREFIX}.log</File>
 
-	<!-- <logger>用来设置某一个包或者具体的某一个类的日志打印级别、 以及指定<appender>。<logger>仅有一个name属性, 一个可选的level和一个可选的addtivity属性。 name:用来指定受此logger约束的某一个包或者具体的某一个类。 level:用来设置打印级别,大小写无关:TRACE,
-		DEBUG, INFO, WARN, ERROR, ALL 和 OFF, 还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前logger将会继承上级的级别。 addtivity:是否向上级logger传递打印信息。默认是true。 -->
-	<!--<logger name="org.springframework.web" level="info"/> -->
-	<!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/> -->
-	<!-- 使用mybatis的时候,sql语句是debug下才会打印,而这里我们只配置了info,所以想要查看sql语句的话,有以下两种操作: 第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql,不过这样日志那边会出现很多其他消息 第二种就是单独给dao下目录配置debug模式,代码如下,这样配置sql语句会打印,其他还是正常info级别: -->
-	<!-- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性 level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, 不能设置为INHERITED或者同义词NULL。默认是DEBUG 可以包含零个或多个元素,标识这个appender将会添加到这个logger。 -->
+		<!-- 设置滚动策略,当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB -->
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 
-	<root level="info">
-		<appender-ref ref="CONSOLE" />
-		<appender-ref ref="ASYNC_DEBUG_FILE" />
-		<appender-ref ref="ASYNC_INFO_FILE" />
-		<appender-ref ref="ASYNC_WARN_FILE" />
-		<appender-ref ref="ASYNC_ERROR_FILE" />
-	</root>
+			<!--日志文件路径,新的 ERR 日志文件名称,“ i ” 是个变量 -->
+			<FileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%i.log</FileNamePattern>
 
-	<springProfile name="dev">
-		<root level="info">
-			<appender-ref ref="CONSOLE" />
-			<appender-ref ref="ASYNC_DEBUG_FILE" />
-			<appender-ref ref="ASYNC_INFO_FILE" />
-			<appender-ref ref="ASYNC_WARN_FILE" />
-			<appender-ref ref="ASYNC_ERROR_FILE" />
-		</root>
-	</springProfile>
+			<!-- 配置日志的滚动时间 ,表示只保留最近 10 天的日志-->
+			<MaxHistory>${LOG_MAX_HISTORY}</MaxHistory>
+			<cleanHistoryOnStart>true</cleanHistoryOnStart>
 
-	<springProfile name="test">
-		<root level="info">
-			<appender-ref ref="CONSOLE" />
-			<appender-ref ref="ASYNC_DEBUG_FILE" />
-			<appender-ref ref="ASYNC_INFO_FILE" />
-			<appender-ref ref="ASYNC_WARN_FILE" />
-			<appender-ref ref="ASYNC_ERROR_FILE" />
-		</root>
-	</springProfile>
+			<!--当天的日志大小超过 ${MAX_FILE_SIZE} 文件大小时候,新的内容写入新的文件, 默认10MB-->
+			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+				<maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
+			</timeBasedFileNamingAndTriggeringPolicy>
+		</rollingPolicy>
 
-	<springProfile name="pro">
-		<root level="info">
-			<appender-ref ref="CONSOLE" />
-			<appender-ref ref="ASYNC_DEBUG_FILE" />
-			<appender-ref ref="ASYNC_INFO_FILE" />
-			<appender-ref ref="ASYNC_WARN_FILE" />
-			<appender-ref ref="ASYNC_ERROR_FILE" />
-		</root>
-	</springProfile>
+		<!-- 输出的日志内容格式化-->
+		<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
+			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+			<charset>utf-8</charset>
+		</encoder>
+	</appender>
+	<!-- additivity 设为false,则logger内容不附加至root ,配置以配置包下的所有类的日志的打印,级别是 ERROR-->
 
-<!--	<springProfile name="dev">-->
-<!--		<root level="info">-->
-<!--			<appender-ref ref="CONSOLE" />-->
-<!--			<appender-ref ref="DEBUG_FILE" />-->
-<!--			<appender-ref ref="INFO_FILE" />-->
-<!--			<appender-ref ref="WARN_FILE" />-->
-<!--			<appender-ref ref="ERROR_FILE" />-->
-<!--			<appender-ref ref="ALL_FILE" />-->
-<!--		</root>-->
-<!--		&lt;!&ndash; <logger name="com.xusanduo.demo" level="debug"/>开发环境, 指定某包日志为debug级 &ndash;&gt;-->
-<!--	</springProfile>-->
+	<logger name="org.springframework" level="ERROR"/>
+	<logger name="org.apache.commons" level="ERROR"/>
+	<logger name="com.alibaba.dubbo.monitor" level="ERROR"/>
+	<logger name="com.alibaba.dubbo.remoting" level="ERROR"/>
+	<logger name="com.apache.ibatis" level="${LOG_LEVEL}"/>
+	<logger name="java.sql.Connection" level="${LOG_LEVEL}"/>
+	<logger name="java.sql.Statement" level="${LOG_LEVEL}"/>
+	<logger name="java.sql.PreparedStatement" level="${LOG_LEVEL}"/>
+	<logger name="io.lettuce.core.protocol" level="ERROR"/>
+	<logger name="io.lettuce.core" level="ERROR"/>
 
-<!--	<springProfile name="test">-->
-<!--		<root level="info">-->
-<!--			<appender-ref ref="CONSOLE" />-->
-<!--			<appender-ref ref="DEBUG_FILE" />-->
-<!--			<appender-ref ref="INFO_FILE" />-->
-<!--			<appender-ref ref="WARN_FILE" />-->
-<!--			<appender-ref ref="ERROR_FILE" />-->
-<!--			<appender-ref ref="ALL_FILE" />-->
-<!--		</root>-->
-<!--		&lt;!&ndash; <logger name="com.xusanduo.demo" level="info"/> 测试环境, 指定某包日志为info级 &ndash;&gt;-->
-<!--	</springProfile>-->
+	<!-- ${LOG_ROOT_LEVEL} 日志级别 -->
+	<root level="${LOG_ROOT_LEVEL}">
 
-<!--	<springProfile name="pro">-->
-<!--		<root level="error">-->
-<!--			&lt;!&ndash; 生产环境最好不配置console写文件 &ndash;&gt;-->
-<!--			<appender-ref ref="CONSOLE" />-->
-<!--			<appender-ref ref="DEBUG_FILE" />-->
-<!--			<appender-ref ref="INFO_FILE" />-->
-<!--			<appender-ref ref="WARN_FILE" />-->
-<!--			<appender-ref ref="ERROR_FILE" />-->
-<!--			<appender-ref ref="ALL_FILE" />-->
-<!--		</root>-->
-<!--		&lt;!&ndash; <logger name="com.xusanduo.demo" level="warn"/> 生产环境, 指定某包日志为warn级 &ndash;&gt;-->
-<!--		&lt;!&ndash; <logger name="com.xusanduo.demo.MyApplication" level="info"/> 特定某个类打印info日志, 比如application启动成功后的提示语 &ndash;&gt;-->
-<!--	</springProfile>-->
+		<!-- 标识这个"${STDOUT}"将会添加到这个logger -->
+		<appender-ref ref="${STDOUT}"/>
 
-	<!--生产环境:输出到文件 -->
-	<!--<springProfile name="pro"> -->
-	<!--<root level="info"> -->
-	<!--<appender-ref ref="CONSOLE" /> -->
-	<!--<appender-ref ref="DEBUG_FILE" /> -->
-	<!--<appender-ref ref="INFO_FILE" /> -->
-	<!--<appender-ref ref="ERROR_FILE" /> -->
-	<!--<appender-ref ref="WARN_FILE" /> -->
-	<!--</root> -->
-	<!--</springProfile> -->
+		<!-- FILE_ALL 日志输出添加到 logger -->
+		<appender-ref ref="FILE_ALL"/>
 
-</configuration>
+		<!-- FILE_INFO 日志输出添加到 logger -->
+		<appender-ref ref="FILE_INFO"/>
 
+		<!-- FILE_ERROR 日志输出添加到 logger -->
+		<appender-ref ref="FILE_ERROR"/>
+	</root>
 
+</configuration>