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