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指定特定的版本號