From 87d3a050867e17b0dd9b47263d59c496622e860a Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期五, 18 八月 2023 15:52:27 +0800
Subject: [PATCH] 管理后台:积分商品的编辑模块
---
/dev/null | 227 -------------------------
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html | 1
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java | 4
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 36 ++++
cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java | 4
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js | 2
cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js | 143 ++++++++-------
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 41 +++-
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java | 4
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html | 28 +-
10 files changed, 169 insertions(+), 321 deletions(-)
diff --git a/cloud-server-account/src/main/resources/logback-spring.xml b/cloud-server-account/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-account/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index e6b0397..faff332 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -629,10 +629,13 @@
public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId){
PointMercharsVo vo = new PointMercharsVo();
PointsMerchandise byId = pmdsService.getById(pointMercharsId);
+ List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
+ .eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId));
if (ToolUtil.isNotEmpty(byId)){
vo.setName(byId.getName());
vo.setCover(byId.getCover());
vo.setPics(byId.getProductImages());
+ vo.setQuantityHas(list.size());
vo.setQuantityIssued(byId.getQuantityIssued());
vo.setPickUpQuantity(byId.getPickUpQuantity());
vo.setSort(byId.getSort());
@@ -708,4 +711,37 @@
}
}
+
+
+ @ResponseBody
+ @PostMapping("/base/pointMerchars/updateGoodsDetail")
+ public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){
+ try {
+ Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
+ PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
+
+ Integer quantityIssued = (Integer) map.get("quantityIssued");
+ Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
+ String redemptionInstructions = (String) map.get("redemptionInstructions");
+ String cover = (String) map.get("cover");
+ String productImages = (String) map.get("productImages");
+ Integer sort = (Integer) map.get("sort");
+
+ byId1.setQuantityIssued(quantityIssued);
+ byId1.setPickUpQuantity(pickUpQuantity);
+ byId1.setRedemptionInstructions(redemptionInstructions);
+ if (ToolUtil.isNotEmpty(cover)){
+ byId1.setCover(cover);
+ }
+ if (ToolUtil.isNotEmpty(productImages)){
+ byId1.setProductImages(productImages);
+ }
+ byId1.setSort(sort);
+ pmdsService.updateById(byId1);
+ return true;
+ }catch (Exception e){
+ return false;
+ }
+ }
+
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
index e781c0e..323169b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
@@ -24,6 +24,10 @@
*/
Integer quantityIssued;
/**
+ * 已领数量
+ */
+ Integer quantityHas;
+ /**
* 限领数量
*/
Integer pickUpQuantity;
diff --git a/cloud-server-activity/src/main/resources/logback-spring.xml b/cloud-server-activity/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-activity/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-auth/src/main/resources/logback-spring.xml b/cloud-server-auth/src/main/resources/logback-spring.xml
deleted file mode 100644
index b13e9b3..0000000
--- a/cloud-server-auth/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-competition/src/main/resources/logback-spring.xml b/cloud-server-competition/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-competition/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-course/src/main/resources/logback-spring.xml b/cloud-server-course/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-course/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
index 07ae8f8..be81e76 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -30,4 +31,7 @@
@PostMapping("/base/pointMerchars/writeOffGoodsStatus")
boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map);
+ @PostMapping("/base/pointMerchars/updateGoodsDetail")
+ boolean updateGoodsDetail(@RequestBody Map<String, Object> stringObjectHashMap);
+
}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
index ab8d03b..8e3e984 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
@@ -24,6 +24,10 @@
*/
Integer quantityIssued;
/**
+ * 已领数量
+ */
+ Integer quantityHas;
+ /**
* 限领数量
*/
Integer pickUpQuantity;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
index ce14034..3ea55ca 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -36,10 +36,7 @@
import javax.annotation.Resource;
import java.io.IOException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.stream.Collectors;
@@ -304,14 +301,31 @@
client.insertIntoData(dataVo);
return new SuccessTip<>();
}
+
+ /**
+ * 编辑 商品详情
+ * @param pointMerchandiseId 商品Id
+ * @param quantityIssued 发放数量
+ * @param pickUpQuantity 限领数量
+ * @param redemptionInstructions 说明
+ * @param cover 封面图
+ * @param productImages 商品图片
+ * @param sort 排序
+ * @return
+ */
@PostMapping(value = "/update")
@ResponseBody
- public Object update( Integer id,Integer num,Integer num1,String text){
- Coupon coupon = client.queryCouponById(id);
- coupon.setQuantityIssued(num);
- coupon.setPickUpQuantity(num1);
- coupon.setIllustrate(text);
- client.updateCouponData(coupon);
+ public Object update( Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity,String redemptionInstructions,String cover,String productImages,Integer sort){
+ Map<String, Object> stringObjectHashMap = new HashMap<>();
+ stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId);
+ stringObjectHashMap.put("quantityIssued",quantityIssued);
+ stringObjectHashMap.put("pickUpQuantity",pickUpQuantity);
+ stringObjectHashMap.put("redemptionInstructions",redemptionInstructions);
+ stringObjectHashMap.put("cover",cover);
+ stringObjectHashMap.put("productImages",productImages);
+ stringObjectHashMap.put("sort",sort);
+ System.out.println(stringObjectHashMap);
+ pointMercharsClient.updateGoodsDetail(stringObjectHashMap);
return new SuccessTip<>();
}
@@ -339,7 +353,7 @@
/**
- * 跳转到修改车辆管理
+ * 跳转到修改商品详情
*/
@RequestMapping("/tGoods_update/{id}")
public String tCityUpdate(@PathVariable Integer id, Model model) {
@@ -347,8 +361,11 @@
PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
System.out.println("pointMercharsVo:"+pointMercharsVo);
String[] split = pointMercharsVo.getPics().split(",");
+ List<String> list = Arrays.asList(split);
+ model.addAttribute("id",id);
model.addAttribute("item",pointMercharsVo);
- model.addAttribute("pictures",split);
+ model.addAttribute("pictures",list);
+ System.out.println(list);
return PREFIX + "TGoods_edit.html";
}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
index 6834772..4d20724 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -257,6 +257,7 @@
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="imageUrl1" alt="">
+ </el-dialog>
</div>
</div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
index 59b18fe..9e11f1c 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
@@ -8,6 +8,7 @@
height: 100px;
width: 100px;
overflow: hidden;
+ display: inline-block;
}
.avatar-uploader .el-upload:hover {
@@ -42,7 +43,7 @@
<div class="ibox-content">
<div class="form-horizontal" id="carInfoForm">
<div id="b1">
-
+ <input id="goodsId" value="${id}" hidden="hidden">
<#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
<#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
@@ -52,8 +53,15 @@
<div class="col-sm-6">
<div class="form-group">
<label class="col-sm-3 control-label">商品图片(请上传不超过五张图片): </label>
- <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
+ <div class="col-sm-2" style="width: 100%;margin-left: 24%;margin-top: 1%">
+ @for(im in pictures){
+ <div class="avatar-uploader" style="display: inline-block;">
+ <img height="100px" width="100px" src="${im}">
+ <i class="fa fa-close" onclick="delImg(this)" style="color: red;font-size: 18px;position: absolute;"></i>
+ </div>
+ @}
<el-upload
+ style="display: inline-block;"
:limit="5"
class="avatar-uploader"
action="/tCouponManage/uploadPic"
@@ -63,17 +71,13 @@
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
- <el-dialog :visible.sync="dialogVisible">
-<!-- <img width="100%" :src="imageUrl1" alt="">-->
- @for(im in pictures){
- <img width="100%" src="${im}">
- @}
+
</div>
</div>
</div>
</div>
-
+ <input id="quantityHas" value="${item.quantityHas}" hidden="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">发放数量:</label>
<div class="col-sm-9">
@@ -109,8 +113,8 @@
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5">
- <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
- <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+ <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.editSubmit()"/>
+ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
</div>
</div>
@@ -132,7 +136,7 @@
},
methods: {
handleAvatarSuccess(res, file) {
- TCarInfoDlg.goodsPicArray.push(file);
+ TGoodsInfoDlg.goodsPicArray.push(file.response);
},
beforeAvatarUpload(file) {
const isLt2M = file.size / 1024 / 1024 < 10;
@@ -142,7 +146,7 @@
return isLt2M;
},
handleRemove(file, fileList) {
- TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
+ TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
return item.uid != file.uid;
});
},
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
index 467b12e..f42e2e2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
@@ -432,6 +432,8 @@
}
}
cts = cityIds.join(',');
+ }else {
+ cts = cityIds;
}
}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
index aff59ba..3b77702 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
@@ -2,8 +2,8 @@
* 初始化车辆管理详情对话框
*/
var language=1;
-var TCarInfoDlg = {
- tCarInfoData : {},
+var TGoodsInfoDlg = {
+ tGoodsInfoData : {},
validateFields: {
},
goodsPicArray:[],
@@ -14,7 +14,7 @@
/**
* 验证数据是否为空
*/
-TCarInfoDlg.validate = function () {
+TGoodsInfoDlg.validate = function () {
$('#carInfoForm').data("bootstrapValidator").resetForm();
$('#carInfoForm').bootstrapValidator('validate');
return $("#carInfoForm").data('bootstrapValidator').isValid();
@@ -23,8 +23,8 @@
/**
* 清除数据
*/
-TCarInfoDlg.clearData = function() {
- this.tCarInfoData = {};
+TGoodsInfoDlg.clearData = function() {
+ this.tGoodsInfoData = {};
}
/**
@@ -33,8 +33,8 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TCarInfoDlg.set = function(key, val) {
- this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+TGoodsInfoDlg.set = function(key, val) {
+ this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
return this;
}
@@ -44,14 +44,14 @@
* @param key 数据的名称
* @param val 数据的具体值
*/
-TCarInfoDlg.get = function(key) {
+TGoodsInfoDlg.get = function(key) {
return $("#" + key).val();
}
/**
* 关闭此对话框
*/
-TCarInfoDlg.close = function() {
+TGoodsInfoDlg.close = function() {
parent.layer.close(window.parent.TPointProducts.layerIndex);
}
@@ -59,7 +59,7 @@
/**
* 收集数据
*/
-TCarInfoDlg.collectData = function() {
+TGoodsInfoDlg.collectData = function() {
this
.set('id')
.set('isPlatCar')
@@ -114,7 +114,7 @@
});
this.layerIndex = index;
}
-TCarInfoDlg.selecUserOpt = function (arrays){
+TGoodsInfoDlg.selecUserOpt = function (arrays){
console.log(arrays)
//获取所有的值
var subArr= this.storeIds;
@@ -145,15 +145,15 @@
console.log(e);
var row = $(e).closest('tr');
var value = row.find('#id').val();
- TCarInfoDlg.storeIds.splice(TCarInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+ TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
$(e).parent().parent().remove();
- console.log('storeIds',TCarInfoDlg.storeIds)
+ console.log('storeIds',TGoodsInfoDlg.storeIds)
}
-TCarInfoDlg.delete = function (o) {
+TGoodsInfoDlg.delete = function (o) {
$(o).parent("div").remove()
}
var num = 0;
-TCarInfoDlg.addBranch = function () {
+TGoodsInfoDlg.addBranch = function () {
num=num+1;
var a= "";
a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
@@ -165,7 +165,7 @@
" <option value=\"\">请选择</option>\n" +
" </select>\n" +
" <label class=\"col-sm-1\" style=\"width: 7%;margin-top: 7px\">市</label>\n" +
- " <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TCarInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+ " <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
" </div>";
$("#cityDemo").append($(a));
getProvince(num);
@@ -229,7 +229,7 @@
/**
* 提交添加
*/
-TCarInfoDlg.addSubmit = function() {
+TGoodsInfoDlg.addSubmit = function() {
this.clearData();
this.collectData();
@@ -273,7 +273,7 @@
Feng.success("Sangat berhasil ditambah!");
}
window.parent.TCompetition.table.refresh();
- TCarInfoDlg.close();
+ TGoodsInfoDlg.close();
}else{
Feng.error(data.msg);
}
@@ -281,7 +281,7 @@
},function(data){
Feng.error("添加失败!" + data.responseJSON.message + "!");
});
- ajax.set(this.tCarInfoData);
+ ajax.set(this.tGoodsInfoData);
ajax.set("provinceCode",pCode);
ajax.set("cityCode",cCode);
ajax.set("name",name);
@@ -290,68 +290,71 @@
}
/**
+ * 删除图片的函数
+ * @param e
+ */
+function delImg(e){
+ $(e).parent().remove();
+}
+
+
+/**
* 提交修改
*/
-TCarInfoDlg.editSubmit = function() {
+TGoodsInfoDlg.editSubmit = function() {
+ let cover = $("#cover").val();
+ let goodsId = $("#goodsId").val();
+ var productImages = "";
+ if (TGoodsInfoDlg.goodsPicArray.length > 0){
+ productImages = TGoodsInfoDlg.goodsPicArray.join(',');
+ }
+ let quantityIssued = $("#quantityIssued").val();
+ let pickUpQuantity = $("#pickUpQuantity").val();
+ let editor = jQuery.trim(TGoodsInfoDlg.editor.getContent());
+ console.log('editor:',editor)
- this.clearData();
- this.collectData();
- if(!this.validate()){
- return ;
- }
- let pCode = $("#pCode").val()
- let cCode = $("#cCode").val()
- let name = $("#name").val()
- let phone = $("#phone").val()
+ let sort = $("#sort").val();
- if(pCode==''){
- Feng.info("请选择省")
- return;
+ if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
+ return Feng.error('发放数量不能为空!');
}
- if(cCode==''){
- Feng.info("请选择市")
- return;
+ if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
+ return Feng.error('限领数量不能为空!');
}
- if(name==''){
- Feng.info("管理员姓名不能为空")
- return;
+ let quantityHas = $("#quantityHas").val();
+ if (quantityIssued <= quantityHas){
+ return Feng.error('发放数量小于已领数量!');
}
- if(phone==''){
- Feng.info("管理员手机号不能为空")
- return;
+
+
+ if (editor === undefined || editor === null || editor === ''){
+ return Feng.error('兑换说明不能为空!');
}
+ if (sort === undefined || sort === null || sort === ''){
+ return Feng.error('排序不能为空!');
+ }
+
//提交信息
- var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){
- if(data=="5001"){
- Feng.error("改账号已经存在");
- }else
- if(data.code == 200){
- if(language==1){
- Feng.success("修改成功!");
- }else if(language==2){
- Feng.success("Modify successfully!");
- }else {
- Feng.success("Mengubah dengan sukses!");
- }
- window.parent.TCompetition.table.refresh();
- TCarInfoDlg.close();
- }else{
- Feng.error(data.msg);
- }
+ var ajax = new $ax(Feng.ctxPath + "/tGoods/update", function(data){
+ Feng.success("修改成功!");
+ window.parent.TPointProducts.table.refresh();
+ TGoodsInfoDlg.close();
},function(data){
Feng.error("修改失败!" + data.responseJSON.message + "!");
});
- ajax.set("provinceCode",pCode);
- ajax.set("cityCode",cCode);
- ajax.set("name",name);
- ajax.set("phone",phone);
- ajax.set("id",$("#id").val());
+ ajax.set("pointMerchandiseId",goodsId);
+ ajax.set("quantityIssued",quantityIssued);
+ ajax.set("pickUpQuantity",pickUpQuantity);
+ ajax.set("redemptionInstructions",editor);
+ ajax.set("cover",cover);
+ ajax.set("productImages",productImages);
+ ajax.set("sort",sort);
ajax.start();
}
$(function() {
getProvince(null);
- Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
+ Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
// 初始化图片上传
var carPhoto = new $WebUpload("cover");
carPhoto.setUploadBarId("progressBar");
@@ -359,13 +362,13 @@
var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
drivingLicensePhoto.setUploadBarId("progressBar");
drivingLicensePhoto.init();
- TCarInfoDlg.editor = UE.getEditor('editor');
+ TGoodsInfoDlg.editor = UE.getEditor('editor');
});
/**
* 选择分公司后执行
*/
-TCarInfoDlg.oneChange = function (e) {
+TGoodsInfoDlg.oneChange = function (e) {
var oneId=$(e).val();
var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
if(data!=null){
@@ -390,7 +393,7 @@
* 类型改变执行
* @param e
*/
-TCarInfoDlg.companyTypeClick = function (e) {
+TGoodsInfoDlg.companyTypeClick = function (e) {
if (1 == e){
$(".companyDiv").hide();
} else if (2 == e){
@@ -401,7 +404,7 @@
/**
* 车辆品牌改变时执行
*/
-TCarInfoDlg.brandChange = function (e) {
+TGoodsInfoDlg.brandChange = function (e) {
var carBrandId=$(e).val();
var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
if(data!=null){
@@ -426,7 +429,7 @@
/**
* 专车服务被点击
*/
-TCarInfoDlg.zcServerClick = function () {
+TGoodsInfoDlg.zcServerClick = function () {
var serverBox1 = $('#serverBox1').prop('checked');
if (serverBox1){
$("#zcModelDiv").show();
@@ -438,7 +441,7 @@
/**
* 跨城服务被点击
*/
-TCarInfoDlg.kcServerClick = function () {
+TGoodsInfoDlg.kcServerClick = function () {
var serverBox3 = $('#serverBox3').prop('checked');
if (serverBox3){
$("#kcModelDiv").show();
diff --git a/cloud-server-other/src/main/resources/logback-spring.xml b/cloud-server-other/src/main/resources/logback-spring.xml
deleted file mode 100644
index e98de73..0000000
--- a/cloud-server-other/src/main/resources/logback-spring.xml
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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">
- <contextName>logback</contextName>
-
- <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
- <property name="log.path" value="/Users/java/logs"/>
-
- <!--0. 日志格式和颜色渲染 -->
- <!-- 彩色日志依赖的渲染类 -->
- <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}}"/>
-
- <!--1. 输出到控制台-->
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>debug</level>
- </filter>
- <encoder>
- <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
- <!-- 设置字符集 -->
- <charset>UTF-8</charset>
- </encoder>
- </appender>
-
- <!--2. 输出到文档-->
- <!-- 2.1 level为 DEBUG 日志,时间滚动输出 -->
- <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/debug.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 日志归档 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.2 level为 INFO 日志,时间滚动输出 -->
- <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/info.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset>
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/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>
-
- <!-- 2.3 level为 WARN 日志,时间滚动输出 -->
- <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/warn.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档只记录warn级别的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- </appender>
-
- <!-- 2.4 level为 ERROR 日志,时间滚动输出 -->
- <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/error.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</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>
-
- <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件 -->
- <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文档的路径及文档名 -->
- <file>${log.path}/${artifactId}/all.log</file>
- <!--日志文档输出格式 Output format of the log document.-->
- <encoder>
- <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
- <charset>UTF-8</charset> <!-- 此处设置字符集 -->
- </encoder>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 Rolling strategy of the logger, recording by date or by size.-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${log.path}/${artifactId}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>100MB</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--日志文档保留天数-->
- <maxHistory>15</maxHistory>
- </rollingPolicy>
- <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>DEBUG</level>
- <onMatch>DENY</onMatch>
- <onMismatch>ACCEPT</onMismatch>
- </filter>
- </appender>
-
- <!--
- <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"/>
- -->
-
- <!--
- root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
- 不能设置为INHERITED或者同义词NULL。默认是DEBUG
- 可以包含零个或多个元素,标识这个appender将会添加到这个logger。
- -->
-
- <!-- 4 最终的策略:
- 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
- <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>
- <logger name="com.dsh" level="debug"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="fat">
- <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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
- <springProfile name="prod">
- <root level="warn">
- <!-- 生产环境最好不配置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>
- <logger name="com.dsh.course.mapper" level="error"/>
- <logger name="business-log" level="warn"/>
- </springProfile>
-
-</configuration>
\ No newline at end of file
--
Gitblit v1.7.1