专做阀门网站,网站如何做银联在线支付,网络营销策划书步骤,网络营销职能是什么前段时间公司的同事都过来问我#xff0c;hua哥公司的项目出问题了#xff0c;关闭不了打印sql日记#xff0c;项目用宝塔自己部署的#xff0c;磁盘满了才发现大量的打印sql日记#xff0c;他们百度过都按照网上的配置修改过不起作用#xff0c;而且在调试时候也及为不方… 前段时间公司的同事都过来问我hua哥公司的项目出问题了关闭不了打印sql日记项目用宝塔自己部署的磁盘满了才发现大量的打印sql日记他们百度过都按照网上的配置修改过不起作用而且在调试时候也及为不方便大量的红色sql日记输出找不着北。
MyBatis-Plus配置关闭打印SQL日记失效
百度了一圈基本上都是说配置 org.apache.ibatis.logging.nologging.NoLoggingImpl配置依然存在打印日记如下图 看到上图的配置和打印出来的日记就说失效了
追本溯源关闭打印日记是真的失效吗 直接从代码下手找到打印日记的类是在PerformanceInterceptor类发现打印日记的如下图 找到根源了就好办了查看这是性能分析拦截器只要是涉及查询更新插入的sql都会被拦截下来打印出来我们顺着这个类继续找在springboot的配置中找到加载PerformanceInterceptor的方法如图 找到问题与解决问题
找到了加载的地方直接注释代码即可启动时就不再加载截了。该方法上有个Profile的注解带有1个参数是指定只有在使用dev配置文件时才会生效我们也可以改变这个名称或者项目用别的配置名称也可以起到不加载的作用。
前台再次查询发现后台没有也没有打印sql日记了 这次正常了。 我们再来看看org.apache.ibatis.logging.nologging.NoLoggingImpl是怎么回事 这次我们把org.apache.ibatis.logging.nologging.NoLoggingImpl注释还原配置使用org.apache.ibatis.logging.stdout.StdOutImpl 配置发现此时又可以打印日记了也就是说我们原先的配置org.apache.ibatis.logging.nologging.NoLoggingImpl是有效的。 定位打印代码这里打印用的是System.out.println(s)是白色的而上面打印用System.err.println(S)是红色的。 总结 这里的org.apache.ibatis.logging.nologging.NoLoggingImpl失效与使用了PerformanceInterceptor类有关springboot启动加载配置阶段会加载PerformanceInterceptor拦截器在执行sql时因为被PerformanceInterceptor拦截在该类内部执行查询并打印从而绕过了正常的执行sql流程。所以说有些问题直接去百度百度回来的未必是你所说的问题解决问题时应该根据实际情况从源代码动手。