SpringBoot进阶之日志集成(logback)
SpringBoot进阶之日志集成(logback)前言
大家好,一直以来我都本着 用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 「基础知识」 的铺垫 适合人群学完Java基础 想通过Java快速构建web应用程序 想学习或了解SpringBoot
「大佬可以绕过 ~」 背景
如果你是一路看过来的,很高兴你能够耐心看完。之前带大家学了 Springboot 基础部分,对基本的使用有了初步的认识, 接下来的几期内容将会带大家进阶使用,会先讲解基础中间件 的使用和一些场景的应用,或许这些技术你听说过,没看过也没关系,我会带大家一步一步的入门,耐心看完你一定会有收获 ~ 情景回顾
上期带大家学习了什么是 跨域 以及Springboot 中如何处理它, 本期将带大家学习SpringBoot 中如何集成日志 工具,同样的,我们集成到Springboot 中。最近github可能会被墙,所以我把源码放到了国内gitee上,本节我们依然使用上期的代码 往期内容我的博客 Springboot入门 Springboot基础(一) Springboot基础(二) Springboot基础(三) Springboot基础(四) Springboot基础(五) SpringBoot进阶之缓存中间件Redis SpringBoot进阶之MyBatis分页插件 SpringBoot进阶之跨域问题处理(CORS) 项目源码(持续更新 )springboot-all 环境搭建
本期没有太多的理论,大家跟着配就好了, 添加配置 resources/logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> ${APP_NAME} ${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log 30 ${FILE_LOG_PATTERN}
配置好后, 我们运行项目,会发现跟目录多了一个 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 去全局拦截我们的请求,并对它做解析,记录请求的各种信息,并计入日志, 方便我们去定位问题。关注我,不迷路, 下期见 ~