溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解決在開發(fā)環(huán)境下可以輸出日志在生產(chǎn)環(huán)境沒有日志輸出問題

發(fā)布時間:2020-06-05 10:03:39 來源:億速云 閱讀:1459 作者:Leah 欄目:編程語言

怎么解決在開發(fā)環(huán)境下可以輸出日志在生產(chǎn)環(huán)境沒有日志輸出問題?相信很多新手小白對此束手無策,通過這篇文章的總結(jié),希望你能找到解決的方法。

一、問題說明:在開發(fā)環(huán)境和測試環(huán)境下均可以輸出日志,但在生產(chǎn)環(huán)境無日志輸出.

二、發(fā)現(xiàn)問題
    
    1,系統(tǒng)不同:
        開發(fā)環(huán)境和測試環(huán)境(windows)
        生產(chǎn)環(huán)境(linux)
    
    2,提示信息:SLF4J: Class path contains multiple SLF4J bindings(類路徑包含多個SLF4J綁定)
            
            a.找到綁定:
            SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
            
            b.找到綁定:
            SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]

            c.完整日志:
            SLF4J: Class path contains multiple SLF4J bindings.
            SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
            SLF4J: Found binding in [jar:file:/home/service/device/device-tomcat-agv/webapps/showcase/WEB-INF/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
            SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
            SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
            log4j:WARN No appenders could be found for logger (org.springframework.data.repository.config.RepositoryConfigurationDelegate).
            log4j:WARN Please initialize the log4j system properly.
            log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

            
三、排查問題

    1,開發(fā)環(huán)境和測試環(huán)境(windows):
        先加載的是 log4j-slf4j-impl , 后加載的是 slf4j-log4j12 .
        
    2,生產(chǎn)環(huán)境:
        先加載的是 slf4j-log4j12 , 后加載的是 log4j-slf4j-impl .
        
        
四、分析問題
    因?yàn)? slf4j 優(yōu)先綁定先加載的 jar包 .
    所以: 開發(fā)環(huán)境綁定的是 log4j-slf4j-impl .
          生產(chǎn)環(huán)境綁定的是 slf4j-log4j12 .
    
    官方資料:slf4j 集成 log4j2 時需要的橋接包是 log4j-slf4j-impl 。
    開發(fā)環(huán)境:slf4j 綁定是正確的,因此可以打印日志。
    生產(chǎn)環(huán)境:slf4j 綁定的 jar 包是 slf4j-log4j12 。所以生產(chǎn)環(huán)境輸出不了日志 (產(chǎn)生這個問題的根本原因是lib里面有多個了slf4j可綁定的jar包)
    

五、解決方案
    由于是 slf4j 綁定 jar 包錯誤而導(dǎo)致打印不了日志。所以我們必須要把這個 slf4j-log4j12.jar 包排除干凈。
    jar 包主要來源有:
    1:zkclient
    2:zookeeper
   
   
六、問題總結(jié)
    1:使用 slf4j + log4j2 時使用的橋接包是 log4j-slf4j-impl
    2:當(dāng)有多個 slf4j 的橋接包時,一定要排除不需要的包
    3:項(xiàng)目啟動時控制臺輸出的信息很重要,耐心觀察啟動日志可以解決很多問題

看完這篇文章,你能夠獨(dú)立解決在開發(fā)環(huán)境下可以輸出日志在生產(chǎn)環(huán)境沒有日志輸出問題了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI