记录遇到的莫名其妙的bug(一)-二改(2020年5月2日18点24分)


2020年4月18日22点00分已解决完毕,本次一共常出现了三个莫名其妙的Bug,之前还是挺好的,不知道手欠动了哪个地方,下面详述问题及解决方法。

Bug1:log4j2.xml文件中定义的日志输入为相对路径,但是单元测试运行时,项目目录下却始终没有日志。

问题描述

log4j2.xml文件中定义了如下的文件日志,只截取了关键部分片段。

<Properties>
	<Property name="DailylogDir">log/${year}/${month}/${day}</Property>
	<Property name="sawDebug">${DailylogDir}/learnDebug</Property>
</Properties>
<Appenders>
	<RollingRandomAccessFile name="sawRollingFileDebug" fileName="${sawDebug}.log"
		                         filePattern="${DailylogDir}/${sawDebug}-%d{yyyy-MM-dd}-%i.log">
	</RollingRandomAccessFile>
</Appenders>		                         

Java代码也相当简单(只是为了测试日志生成情况而已)。

public class TestLog {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    @Test
    void test() {
        logger.debug("11");
        logger.info("22");
        logger.warn("33");
        logger.error("44");
    }
}

如上所示,明显日志文件路径为相对路径,但是JunitTest正常运行,却始终没有生成日志文件,我尝试刷新IDEA项目目录或者打开所在的文件管理器都没有!!!

解决手段

之前是这样的,如下所示👇👇👇!!!
在这里插入图片描述
由于我打开了多个项目,也就是多个IDEA页签的,然后这个$MODULE_WORKING_DIR$居然直接给我缓存定位到其他的项目中去了!!!太坑了。

摸索了一段时间发现原来是IDEA自动配置的运行Configuration的工作路径不对!但是之前一直都是没有问题的(等解决后,我感觉极有可能是IDEA缓存惹的祸)
在这里插入图片描述
我这里已经成功改好了这个Working directory的配置,改为$ModuleFileDir$如上所示👆👆👆

如果你打算手动配置成为其它路径也可以自选的,注意是任意选择的,根据自身的情况自选,乱选没啥用的。
在这里插入图片描述
我也不知道为啥突然出现缓存乱跳的情况…可能这是命吧🙂🙂🙂


二改(2020年5月2日18点24分)记录:
在写上面这个bug的时候我用的是2020.1版本,今天看到IDEA的2020.1.1的更新如下👇👇👇
在这里插入图片描述
刚好修复了我遇到的这个BUG,莫名开心😊😊😊,虽然我没有向官方提这个BUG。


Bug2:不是bug1的项目,是另一个Spring源码项目,莫名其妙出现IDEA 错误: 找不到或无法加载主类

问题描述

??????
运行main方法时出错的。
我特么的之前一直挺好的(极有可能是缓存问题,我可能手欠把IDEA缓存给Invalidate了把)

解决手段

只能再清理一次缓存, 然后重启
先这样
在这里插入图片描述
然后这样
在这里插入图片描述
然后重启😤😤😤!!!(可以不用重启的,我想彻底断掉)

然后解决了。

Bug3:IDEA springcloud Maven项目做单元测试的时候,单元测试直接不能启动

问题描述

单元测试时,失败了一次,提示ClassNotFoundException TestInstancePreDestroyCallback,这个是由于使用的是junit5.5.2,说有个junit中的一个class没有找到,后来我查了一下,发现是junit版本问题,于是我换成了5.6.2,再次运行,直接无法运行了,具体就是junit无法启动!
在这里插入图片描述
如下所示👇👇👇(这个是成功的,失败图忘截了),失败的样子是把图片中的✅✅✅图标换成➖➖➖
,console上是这样一行Process finished with exit code -1,-1啊,那就是系统错误啊,我也不知道啥原因啊,也没有看到提示写哪个地方错误。
在这里插入图片描述

解决手段

我又怀疑是之前的缓存的问题(那个时候还没有重启),摸索了一会,然后看了下项目的依赖,
如下所示👇👇👇(这个是成功的,失败图忘截了),失败的样子是下面有两个junit一个是5.5.2一个是5.6.2,于是我删除了5.5.2相关的依赖,然后把直接mavenreimport重导依赖,完美解决!!!
在这里插入图片描述
这里我就不得不说,经历过导入spring源码至IDEA后(也遇到了一堆的编译错误问题,不过还好都解决了,也可以正常新建module,做自己想做的事情了),再加上这个maven依赖的问题依赖了两个相同的jar却没有自动删除之类的操作,有点觉得gradle好用了,匹配简单就一行,而且解决依赖也方便(不过我也只是个gradle萌新)。

总结

今天导致这些问题的根本原因是这样的,今天想试一下这款插件的👇👇👇(可以说IDEA上的好多插件我都尝试过,最终也只留下了中意的几款,其他的要不是暂时用不到,要不就是不适合我,要不就是比较消耗性能或者内存,亦或是页面不符合我的审美观,要不是由于付费,我是白po嫖jie党😄😄😄)在这里插入图片描述
这是款什么插件呢?是一款安装后直接替换掉IDEA所有默认的图标,在安装后的一瞬间触发,同时触发重新缓存索引(spring源码特别大比较耗时),在我的黑色默认主题风格Darcula显得特别的亮眼,就是眼前一亮,但是缺点也很明显,我习惯了接口和类的图片的明显区分,但是这个插件针对class和interface的图片让我觉得难以区分,如果命名不好的话,还是不好区分或者需要时间来适应,于是我卸载了这款插件,就导致了上述的几个bug!!!

好在有一定的经验,知道怎么解决这些莫名其妙的问题,比如log没有找到,可能是路径的问题;jar替换可能导致缓存的问题;IDEA 找不到或无法加载主类,一把都是IDEA缓存的问题,invalidate并restart即可。
以后在遇到其他的问题,再继续添加📄📄📄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值