前言
大家好,一直以来我都本着 用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 基础知识 的铺垫
适合人群
- 学完Java基础
- 想通过Java快速构建web应用程序
- 想学习或了解SpringBoot
大佬可以绕过 ~
背景
如果你是一路看过来的,很高兴你能够耐心看完。之前带大家学了Springboot
基础部分,对基本的使用有了初步的认识, 接下来的几期内容将会带大家进阶使用,会先讲解基础中间件
的使用和一些场景的应用,或许这些技术你听说过,没看过也没关系,我会带大家一步一步的入门,耐心看完你一定会有收获
~
情景回顾
上期带大家学习了什么是跨域
以及Springboot
中如何处理它, 本期将带大家学习SpringBoot
中如何集成日志
工具,同样的,我们集成到Springboot
中。最近github可能会被墙,所以我把源码放到了国内gitee上,本节我们依然使用上期的代码
项目源码(持续更新⭐️)
环境搭建
本期没有太多的理论,大家跟着配就好了, 添加配置 resources/logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> <!--应用名称--> <property name="APP_NAME" value="app"/> <!--日志文件保存路径--> <property name="LOG_FILE_PATH" value="./logs"/> <contextName>${APP_NAME}</contextName> <!--每天记录日志到文件appender--> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </configuration> 复制代码
配置好后, 我们运行项目,会发现跟目录多了一个logs
的目录,那个就是日志文件,跟控制台产生的日志一样,被记录到文件里了。然后教大家怎么去打日志:
@RestController @RequestMapping("/v1") public class HelloController { private static final Logger logger = LoggerFactory.getLogger(HelloController.class); @RequestMapping("/hello") public String hello(){ logger.info("hello"); return "Hello World!" + name + version; } } 复制代码
请求后发现控制台有打印,并且文件有记录,那么就成功了~ 依次类推,在你觉得需要记录的位置,进行日志记录就可以了,比如一些报错的地方或者一些关键点的地方
配置sql记录
有时候,我们需要查看sql
怎么执行的,但控制台啥输出没有可不行,下面教大家配一下:
mybatis: mapper-locations: - classpath:mapper/*.xml configuration: cache-enabled: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 复制代码
配置好后,执行一下查询请求,会发现控制台有详细的sql log
包括入参的值
结束语
本期就到这里结束了,总结一下,主要教大家如何在项目中配置log
,因为我们的服务是跑在服务器上的,具体发生了啥,我们不知道,只能依赖log
,所以还是比较重要的
下期预告
有时候,我们需要了解一个请求发生了啥,通常会在控制器里各种log
打印,这样对代码维护不是很友好,下期教大家如何利用aop
去全局拦截我们的请求,并对它做解析,记录请求的各种信息,并计入日志, 方便我们去定位问题。关注我,不迷路, 下期见 ~