title: slf4j 更新版本导致无日志输出 tags:
- SLF4J
- java9
- 日志
- maven
- NOPLogger categories: 工作日志 date: 2017-03-25 18:18:55
目前配件erp后台接收到错误会自动发送邮件给对应开发
通常会带上错误时间,错误方法名,错误发生的其他信息(用户门店)参数等等便于排查。
每天清晨还会统计系统中发生错误的个数但是
经过排查发现线索如下
erp系统的启动在04-08大约6点之后全部变成unstable。
由于erp的启动是异步启动 因此开发人员并未察觉(系统正常运行)
因此大概猜测是由于开发修改了logback的相关配置导致日志不输出
查看对应时间的历史变更后发现修改如下
并没有任何和log相关的提交。调查一度陷入了僵局。
因此只能通过日志不输出的方向考虑。日志不输出很有可能是使用了NOPLogger,那么考虑是否是有开发修改了pom文件导致依赖发生变更呢?
查询如下
原来开发引用jar没有指定特定的版本,同时没有将对应的依赖写到dependencyManagement。
对于maven中央仓库如有更新,则会自动更新对应的jar
恰巧0408那一天 slf4j发了新的版本的组件导致jar被更新。对此slf4j的说明如下
为了Java1.9 只能说也是蛮拼的……
对策如下:
修改为指定版本抽取到根pom中
去除release版本依赖
一切正常
开发在引用jar的同事注意version等,最好在dependencyManagement指定特定的版本号