微信开源 jar 包 - binarywang 的日志追加打印《debug 级别》
1、有点无聊的分享
主要是闲来无聊,老大让我学习OpenEuler系统和虚谷数据库(信创),所以在下载镜像。emmm。。。有点无聊,想摸鱼,但又闲不下来,发发一篇微型技术贴。谈谈和分享之前遇到一个算是比较坑但是又不算坑的问题。让新人程序员偷点知识。上次的博客好多人看,有点开心,大家技术都很吊,搞得我也有点不好意思,我分享的技术都比较入门,可能我经验就摆在这,但是我也想分享,就是想跟我一样的入门程序员可以以后少走一些弯路,哈哈~大家开心!
2、依赖导入
<!-- 微信工具类 -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
</dependency>
3、项目打印日志难点
ruoyi中有个比较烦的点就是,只能打印info级别的日志,不匹配的时候全会被deny(拒绝不接受)掉,其实就是,log.info(....)都会打印到日志去,除此之外的所有log.error,log.debug级别的,都不会打印
ps:如果你的生产可以开debug级别,那我只能说你nb
4、binarywang日志查看
这个开源jar包的日志,我之前做的是微信推送,想要查看微信返回的消息,但是根本看不了,看下图。
发送微信模板(引入jar包和使用我就不赘述了,这里只讲使用的过程)
冲进去源码,只看到这句话
这个返回体,可以说一点用都没有,我记得只会返回一个莫名其妙的数据,也不知道成功还是失败,日志根本看不到东西。
这是真正的debug环境,打出来的日志,那么上面这个图会返回什么呢?对没错,会返回一个 3366166····一个莫名其妙的数据(确实 在源码中会截取getErrorCode == 0 的(成功)下才会返回一个msgId),可是有啥用呢?我每次都去看源码 哎呀呀0是成功还是失败吗?排查日志难度是真的大,所以当时我直接暴走,草,成了没有啊,我真不知道(还被老大说了一顿,你都不知道成不成功我怎么去沟通客户,我说我看看源码,尬得很)
---------------- 我是一条分割线 ---------------
为什么要打印debug级别日志,因为源码包最底层的代码就是log.debug级别,刚刚忘了贴这个图,爱你们宝贝
---------------- 我是一条分割线 ---------------
5、追加自定义过滤器
为什么要直接追加自定义过滤器?其实我当时试了很多方法,包括只针对某个包打印debug日志,但是ruoyi好像都会拦截,后面我直接不管了,浪费太多时间了,我直接自己实现一个过滤器(各位大佬可以在这里提供一些更好的想法!)
5.1、logback-spring.xml中追加额外的配置
这个配置的意思就是
将
me.chanjar.weixin.mp
这个包的日志内容应用到
com.hotel.framework.filter.WxLogFilter 自定义过滤器内
5.2、实现WxLogFilter
简单的很 这句话的意思就是 拿到日志不为空 不为空就 接受日志 否则就拒绝 至此 实现完毕
6、最终效果
在特定目录下!抓取所有的记录!以及openId还有推送的各种详细数据,反正查日志很爽了。
7、总结
各位大佬,这是第二篇技术贴,希望大家可以多来点意见,我爱你们~欧雷瓦!itxc!一个只会说我爱你的后端小菜,希望大佬们多多观摩,意见我全都会看的,放屁
日志重不重要,只有出问题的时候才知道