微信开源 jar 包 - binarywang 的日志追加打印《debug 级别》

1、有点无聊的分享

主要是闲来无聊,老大让我学习OpenEuler系统和虚谷数据库(信创),所以在下载镜像。emmm。。。有点无聊,想摸鱼,但又闲不下来,发发一篇微型技术贴。谈谈和分享之前遇到一个算是比较坑但是又不算坑的问题。让新人程序员偷点知识。上次的博客好多人看,有点开心,大家技术都很吊,搞得我也有点不好意思,我分享的技术都比较入门,可能我经验就摆在这,但是我也想分享,就是想跟我一样的入门程序员可以以后少走一些弯路,哈哈~大家开心!

2、依赖导入

<!-- 微信工具类 -->
		<dependency>
			<groupId>com.github.binarywang</groupId>
			<artifactId>weixin-java-mp</artifactId>
		</dependency>

3、项目打印日志难点

image.png

ruoyi中有个比较烦的点就是,只能打印info级别的日志,不匹配的时候全会被deny(拒绝不接受)掉,其实就是,log.info(....)都会打印到日志去,除此之外的所有log.error,log.debug级别的,都不会打印

ps:如果你的生产可以开debug级别,那我只能说你nbtrollface

4、binarywang日志查看

这个开源jar包的日志,我之前做的是微信推送,想要查看微信返回的消息,但是根本看不了,看下图。

image.png

发送微信模板(引入jar包和使用我就不赘述了,这里只讲使用的过程)

冲进去源码,只看到这句话

image.png

这个返回体,可以说一点用都没有,我记得只会返回一个莫名其妙的数据,也不知道成功还是失败,日志根本看不到东西。

image.png

这是真正的debug环境,打出来的日志,那么上面这个图会返回什么呢?对没错,会返回一个 3366166····一个莫名其妙的数据(确实 在源码中会截取getErrorCode == 0 的(成功)下才会返回一个msgId),可是有啥用呢?我每次都去看源码 哎呀呀0是成功还是失败吗?排查日志难度是真的大,所以当时我直接暴走,草,成了没有啊,我真不知道(还被老大说了一顿,你都不知道成不成功我怎么去沟通客户,我说我看看源码,尬得很)

---------------- 我是一条分割线 ---------------

为什么要打印debug级别日志,因为源码包最底层的代码就是log.debug级别,刚刚忘了贴这个图,爱你们宝贝

image.png

---------------- 我是一条分割线 ---------------

5、追加自定义过滤器

为什么要直接追加自定义过滤器?其实我当时试了很多方法,包括只针对某个包打印debug日志,但是ruoyi好像都会拦截,后面我直接不管了,浪费太多时间了,我直接自己实现一个过滤器(各位大佬可以在这里提供一些更好的想法!)

5.1、logback-spring.xml中追加额外的配置

image.png

这个配置的意思就是

me.chanjar.weixin.mp

这个包的日志内容应用到

com.hotel.framework.filter.WxLogFilter 自定义过滤器内

5.2、实现WxLogFilter

image.png

简单的很 这句话的意思就是 拿到日志不为空 不为空就 接受日志 否则就拒绝 至此 实现完毕

6、最终效果

image.png

在特定目录下!抓取所有的记录!以及openId还有推送的各种详细数据,反正查日志很爽了。

7、总结

各位大佬,这是第二篇技术贴,希望大家可以多来点意见,我爱你们~欧雷瓦!itxc!一个只会说我爱你的后端小菜,希望大佬们多多观摩,意见我全都会看的,放屁