log4j、logback日誌衝突解決,log4j橋接到logback
知識
07-10
背景:項目中一直使用slf4j日誌框架,logback日誌組件作為實現記錄日誌,最近集成elasticsearch客戶端。
官方文檔,es客戶端運行依賴log4j日誌組件,也親自試了,不引入log4j確實會報錯;怎麼辦呢,不能輕易引入log4j,很容易和logback衝突 ?
還好有這麼一個橋接器,可以從log4j橋接到slf4j,只需依賴log4j-to-slf4j jar包即可完美解決。
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-to-slf4j</artifactId>
- <version>2.11.0</version>
- </dependency>
問題很容易解決了,是否值得思考一下,這種情況是否可以避免呢,比如說現在讓你封裝一個jar包給別人用,難道你要別人都加一個這樣看似毫無關係的橋接器嗎 ?
當然可以避免的,不需要每個使用方都用橋接器來解決問題,這也是slf4j等這類日誌框架存在的意義,也是java中面向介面編程的思想所在。在封裝的jar包里只使用slf4j這類日誌框架的介面,至於具體實現是誰,看使用方了,使用方happy 就 ok !避免對使用方的影響,比如使用slf4j:
private final static Logger LOGGER = LoggerFactory.getLogger(xxx.class);


※Tengine 安裝配置全過程
※Android端運行Tensorflow的demo去分類自己的數據集
TAG:程序員小新人學習 |