真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot如何使用logback、logstash、ELK記錄日志文件

這篇文章主要介紹Spring Boot如何使用logback、logstash、ELK記錄日志文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

泗縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

Spring Boot 下,嘗試使用 log4j 記錄日志到 logstash,在src/main/resources 目錄下添加 log4j.properties 文件進行自定義輸出日志文件,未能成功。在 application.yml 中 配置 logging path 打印日志成功了,但是未能調(diào)試成功日志分文件記錄。網(wǎng)上查閱資料,說是 Spring Boot 默認使用 logback 記錄日志。log4j 多次嘗試后無果,遂改為使用 logback 記錄,最終測試成功。

1. 關(guān)于 Spring Boot 日志文件路徑的疑惑?

同時配置了 logging.path 和 logging.file 屬性,如下配置:

logging:
 path: /var/log
 file: test.log

僅僅只會在項目根路徑下產(chǎn)生 test.log 文件,不會在指定路徑下產(chǎn)生日志文件(期望日志路徑為:logging.path + logging.file)。

原因:Spring Boot 中的 logging.path 和 logging.file 這2個屬性,只需要配置其中之一即可,如果同時配置,則使用 logging.file 屬性。

當配置了 loggin.path 屬性時,將在該路徑下生成 spring.log 文件,即:此時使用默認的日志文件名 spring.log。

當配置了 loggin.file 屬性時,將在指定路徑下生成指定名稱的日志文件。默認為項目相對路徑,可以為 logging.file 指定絕對路徑。

logging: 

path: /var/logs   # 在/var/logs目錄下生成spring.log文件
 file: /var/logs/test.log # 在/var/logs目錄下生成test.log文件

2. logback 取代 log4j的理由:

以下來在網(wǎng)絡(luò)摘抄:

Logback 和 log4j 是非常相似的,如果你對 log4j 很熟悉,那對 logback 很快就會得心應(yīng)手。下面列了 logback 相對于 log4j 的一些優(yōu)點:

    1、更快的實現(xiàn)  Logback 的內(nèi)核重寫了,在一些關(guān)鍵執(zhí)行路徑上性能提升10倍以上。而且logback 不僅性能提升了,初始化內(nèi)存加載也更小了。

    2、非常充分的測試 Logback 經(jīng)過了幾年,數(shù)不清小時的測試。Logback 的測試完全不同級別的。在作者的觀點,這是簡單重要的原因選擇 logback 而不是 log4j。

    3、Logback-classic 非常自然實現(xiàn)了 SLF4j Logback-classic 實現(xiàn)了 SLF4j。在使用SLF4j中,你都感覺不到 logback-classic。而且因為 logback-classic 非常自然地實現(xiàn)了SLF4J,所以切換到 log4j 或者其他,非常容易,只需要提供成另一個 jar 包就 OK,根本不需要去動那些通過 SLF4JAPI 實現(xiàn)的代碼。

    4、非常充分的文檔,官方網(wǎng)站有兩百多頁的文檔。

    5、自動重新加載配置文件,當配置文件修改了,Logback-classic能自動重新加載配置文件。掃描過程快且安全,它并不需要另外創(chuàng)建一個掃描線程。這個技術(shù)充分保證了應(yīng)用程序能跑得很歡在JEE環(huán)境里面。

    6、Lilith,Lilith 是 log 事件的觀察者,和 log4j 的 chainsaw 類似。而 lilith 還能處理大數(shù)量的 log 數(shù)據(jù) 。

    7、謹慎的模式和非常友好的恢復,在謹慎模式下,多個 FileAppender 實例跑在多個 JVM 下,能夠安全地寫道同一個日志文件。RollingFileAppender 會有些限制。Logback 的FileAppender 和它的子類包括 RollingFileAppender 能夠非常友好地從 I/O 異常中恢復。

    8、配置文件可以處理不同的情況,開發(fā)人員經(jīng)常需要判斷不同的 Logback 配置文件在不同的環(huán)境下(開發(fā),測試,生產(chǎn))。而這些配置文件僅僅只有一些很小的不同,可以通過,和來實現(xiàn),這樣一個配置文件就可以適應(yīng)多個環(huán)境。

    9、Filters(過濾器),有些時候,需要診斷一個問題,需要打出日志。在log4j,只有降低日志級別,不過這樣會打出大量的日志,會影響應(yīng)用性能。在 Logback,你可以繼續(xù)保持那個日志級別而除掉某種特殊情況,如 alice 這個用戶登錄,她的日志將打在 DEBUG 級別而其他用戶可以繼續(xù)打在WARN 級別。要實現(xiàn)這個功能只需加4行XML配置。可以參考 MDCFIlter 。    

   10、SiftingAppender(一個非常多功能的Appender)  它可以用來分割日志文件根據(jù)任何一個給定的運行參數(shù)。如,SiftingAppender 能夠區(qū)別日志事件跟進用戶的 Session,然后每個用戶會有一個日志文件。

   11、自動壓縮已經(jīng)打出來的 log,RollingFileAppender 在產(chǎn)生新文件的時候,會自動壓縮已經(jīng)打出來的日志文件。壓縮是個異步過程,所以甚至對于大的日志文件,在壓縮過程中應(yīng)用不會受任何影響。

   12、堆棧樹帶有包版本,Logback在打出堆棧樹日志時,會帶上包的數(shù)據(jù)。

   13、自動去除舊的日志文件,通過設(shè)置 TimeBasedRollingPolicy 或者SizeAndTimeBasedFNATP 的 maxHistory 屬性,你可以控制已經(jīng)產(chǎn)生日志文件的最大數(shù)量。如果設(shè)置 maxHistory 12,那那些 log 文件超過12個月的都會被自動移除。

總之,logback 比 log4j 太優(yōu)秀了,讓我們的應(yīng)用全部建立 logback 上吧 !

3. 引入 logback 到項目中

添加包依賴,Maven style: 


  org.springframework.boot
  spring-boot-starter-logging
 
 
  net.logstash.logback
  logstash-logback-encoder
  4.11
 
 
  net.logstash.log4j
  jsonevent-layout
  1.7
 

4. 添加 logback.xml

添加 logback.xml 文件到 src/main/resources 目錄下,系統(tǒng)會自動加載讀取 logback.xml 配置。

logback.xml:



 
 logback
 
 
 

    192.168.220.83:9601
   



 
 
  %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
 



 ${log.path}
 
  logback.%d{yyyy-MM-dd}.log
 
 
  %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
 


 
 
 


5. logstash-logback-encoder 版本問題

在 spring-boot 中,如果使用 logstash-logback-encoder ,可能需要告訴 maven 具體的版本號以此避免包依賴沖突。例如可以像下面這樣設(shè)置 logback-core, logback-classic, and logback-access 的 dependencies:

 
  1.2.3
 
 
  
   
    ch.qos.logback
    logback-core
    ${ch.qos.logback.version}
   
   
    ch.qos.logback
    logback-classic
    ${ch.qos.logback.version}
   
   
    ch.qos.logback
    logback-access
    ${ch.qos.logback.version}
   
  
 

以上是“Spring Boot如何使用logback、logstash、ELK記錄日志文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞名稱:SpringBoot如何使用logback、logstash、ELK記錄日志文件
地址分享:http://weahome.cn/article/gopspi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部