logback配置错误当中的陷阱

logback的xml配置文件没有DTD或者schema,也就是说可以让人随意的配置

结果就是,一不小心就会配置一些错误的标签进去。或者是原来的配置是正确的,但是logback升级等操作之后,配置就会有错误了

如果在一般的application(war其实也是某种格式的application)当中,即便是用来spring作为容器,但是main方法是完全Pure Java的,即自己手动的加载Spring的Application Context,这时候触发logback的加载,一旦有错误发送,会在Console输出ERROR信息,但是很可能不影响后续启动。如果不细心观察,很可能认为启动当中没有异常。

出现这个现象的原因,大概是Logback认为自己即便启动当中有错误,也就是影响到日志的一些输出,况且可能输出都不会受影响,所以就对着Error听之任之了。

但是一旦使用其他的启动方式,结果就不太一样了。比如使用spring boot启动。由于spring boot采用了自己的logback的加载器,一旦logback加载过程出现异常,Spring boot会抛出异常,中断启动过程。同时报错logback配置有误。

两个一对比,就会产生一个误判——认为曾经正常配置的xml在spring boot中不能用了。可能误判为jar冲突之类的错误。

即便是exclude了spring boot自带的logback相关的jar,也会报这个错误。

最后把原来可以运行的application启动,发现了logback的Error,这才找到了原因。

Spring Boot对于这类Error没有放过,直接终止了。

结论:有时候一些不是很Fatal的Error可能会被放过,但是一旦启动过程报错,十有八九就是配置之类的真的有错了。最好把原来能够启动的application启动一次,仔细看看输出再做判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值