src/main/java/com/whyc/controller/TestController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/Response.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/exception/first/CodeAndMsg.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/exception/first/CustomExceptionResultHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/exception/first/DefinedException.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/exception/second/Assert.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/AlarmRuleService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/logback-spring.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/config/logback.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/TestController.java
@@ -2,10 +2,13 @@ import com.whyc.dto.Response; import com.whyc.dto.multiTree.MultiTree; import com.whyc.exception.first.CustomExceptionResultHandler; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; @@ -14,7 +17,8 @@ */ @RestController @RequestMapping("test") @ApiIgnore @Api(tags = "test") @Slf4j public class TestController { @GetMapping("test") @@ -27,4 +31,15 @@ MultiTree tree = new MultiTree().saveAsTree(dateArr); return new Response<MultiTree>().set(1,tree); } @GetMapping("test2") @ApiOperation(value = "test2") public Response test2(@RequestParam Integer num){ System.out.println("执行了test2的方法1"); log.info("哈哈"); byte b = num.byteValue(); System.out.println("执行了test2的方法"); return new Response().set(1,num); } } src/main/java/com/whyc/dto/Response.java
@@ -1,5 +1,6 @@ package com.whyc.dto; import com.whyc.exception.first.CodeAndMsg; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiResponse; src/main/java/com/whyc/exception/first/CodeAndMsg.java
New file @@ -0,0 +1,30 @@ package com.whyc.exception.first; public enum CodeAndMsg { SUCCESS(1,"SUCCESS"), FAIL(0,"exception"); private int code; private String message; CodeAndMsg(int code, String message) { this.code = code; this.message = message; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } src/main/java/com/whyc/exception/first/CustomExceptionResultHandler.java
New file @@ -0,0 +1,37 @@ package com.whyc.exception.first; import com.whyc.dto.Response; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 1.针对RestController层捕捉异常,结果统一返回 * 2.异常日志,本地独立部署测试日志记录 TODO */ @Slf4j @RestControllerAdvice(annotations = RestController.class) public class CustomExceptionResultHandler<T> { @ExceptionHandler(DefinedException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Response sendErrorResponse2Defined(Exception exception){ return new Response().set(0,((DefinedException)exception).getMessage()); } @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public Response sendErrorResponse2System(Exception exception){ exception.printStackTrace(); if(exception instanceof DefinedException) { return this.sendErrorResponse2Defined(exception); } CodeAndMsg.FAIL.setMessage(exception.toString()); log.error("发生异常:{}",exception.toString()); return new Response().setMsg(0,exception.toString()); } } src/main/java/com/whyc/exception/first/DefinedException.java
New file @@ -0,0 +1,21 @@ package com.whyc.exception.first; /** * 自定义异常 */ public class DefinedException extends RuntimeException{ private String message; public DefinedException(String message){ this.message = message; } @Override public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } src/main/java/com/whyc/exception/second/Assert.java
New file @@ -0,0 +1,9 @@ package com.whyc.exception.second; /** * 采用Assert处理全局异常 */ public interface Assert { } src/main/java/com/whyc/service/AlarmRuleService.java
@@ -31,7 +31,7 @@ * @return */ public Response add(AlarmRule alarmRule) { //查询同一字段,同一个under或者over,是否已经存在记录 //查询同一字段,同一个under(过高)或者over(过低),是否已经存在记录 //如果存在了记录,则按照 一般,重要,严重区分:一般1,严重2,... mapper.insert(alarmRule); return new Response().setMsg(1,"新增成功"); src/main/resources/config/application.yml
@@ -60,3 +60,5 @@ knife: enable: true # enable: fase log.path: F:\app\backlog src/main/resources/config/logback-spring.xml
New file @@ -0,0 +1,53 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <!-- <property name="LOG_HOME" value="F:\app\logs" />--> <property resource="application.yml"/> <springProperty scope="context" name="LOG_HOME" source="log.path" /> <!--控制台日志, 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--> <pattern>%-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!--文件日志, 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <fileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- <FileNamePattern>F:/app/logs/logback.%d{yyyy-MM-dd}.log</FileNamePattern>--> <!--日志文件保留天数--> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>10MB</maxFileSize> </triggeringPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!--mybatis log configure--> <logger name="com.apache.ibatis" level="TRACE"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 开发环境日志输出级别 --> <root level="info"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE"/> </root> </configuration> src/main/resources/config/logback.xml
@@ -1,50 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <configuration scan="true" scanPeriod="60 seconds" debug="false" > <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_HOME" value="../logs" /> <!--控制台日志, 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%msg:日志消息,%n是换行符--> <pattern>%-5level %logger{50} - %msg%n</pattern> <property name="LOG_HOME" value="F:/app/logs" /> <contextName>scpSale-Server</contextName> <!-- 控制点输出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern> </encoder> </appender> <!--文件日志, 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 按照每天生成日志文件 --> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_HOME}/logback.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天数--> <MaxHistory>30</MaxHistory> <fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!--mybatis log configure--> <logger name="com.apache.ibatis" level="TRACE"/> <logger name="java.sql.Connection" level="DEBUG"/> <logger name="java.sql.Statement" level="DEBUG"/> <logger name="java.sql.PreparedStatement" level="DEBUG"/> <!-- 开发环境日志输出级别 --> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE"/> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> </configuration> </configuration>