在日常專案中,我們有可能會遇到各式各樣的異常錯誤。而排查這些異常的最有效的入口就是分析日誌。所以,每乙個線上的專案都必須要有一套完成的列印機制。以確保系統出問題之後可以有根可續。
本文我們將結合logback在我們的專案中新增日誌列印及落地的功能。這裡並不需要任何的新增依賴操作,因為springboot其實已經有幫我們結合了logback的依賴。有興趣的同學可以點開一下專案的parent就可以找到。
logback配置檔案
在resource目錄裡面新增乙個日誌配置檔案。這裡我把它命名為logback-spring.xml
<?xml version="1.0" encoding="utf-8"?>
scan
="true"
scanperiod
="60 seconds"
debug
="false"
>
>
logbackcontextname
>
name
="console"
class
=>
>
>
%d [%thread] %-5level %logger - %msg%npattern
>
encoder
>
class
="ch.qos.logback.classic.filter.levelfilter"
>
>
infolevel
>
>
acceptonmatch
>
>
denyo****match
>
filter
>
>
name
="logfile"
class
=>
>
trueprudent
>
class
="ch.qos.logback.core.rolling.timebasedrollingpolicy"
>
>
logs/%d/%d.log
filenamepattern
>
rollingpolicy
>
class
="ch.qos.logback.classic.patternlayout"
>
>
%d -%msg%n
pattern
>
layout
>
>
level
="info"
>
ref=
"console"
/>
ref=
"logfile"
/>
root
>
configuration
>
修改yml配置springboot在yml裡面提供了詳細的log配置。但由於我們最後使用xml的方式,所以這裡我們只需要把配置資訊指定到我們剛剛的xml檔案即可。
server
:port
:8080
logging
:config
: classpath:logback-spring.xml
新增log列印新增log列印有兩種,第一種就是引入lombok使用註解。但由於lombok的使用會對專案以後公升級帶來步方便性。所以我選擇傳統的方式
private final logger logger = logge***ctory.getlogger(basecontroller.class);最終就會得到類似這樣的**來列印我們需要的log。
@restcontroller
@controller
public
class
basecontroller")
public apiresultbody sayhello
(@pathvariable
("name"
) string name)
",name)
; string result =
"hello "
+ name +
", here is base boot.";if
("error"
.equals
(name)
)return apiresultbody.
success
(result);}
}
最後,我們的log引入就成功了。這裡給大家看一下新增後的專案結構。當我們啟動專案之後,就可以看到多了乙個logs目錄,裡面存放著當天的日誌。
這裡給個小提醒,因為這個修改會造成專案內多乙個目錄。而這個目錄我們不需要上傳到**倉庫上的。所以記得在.gitignore檔案裡新增如下**,以忽略這個檔案。
### log ###
logs/
SpringBoot LogBack 日誌配置
在開發中我們專案必然要配置日誌的啦 先說說常用的日誌配置 log4j log4j2 logback logback 和 log4j 是非常相似的,如果你對 log4j 很熟悉,那對 logback 很快就會得心應手 無論從設計上還是實現上,logback 相對 log4j 而言有了相對多的改進。不過...
SpringBoot Logback日誌中介軟體
依賴基本不用新增 2.接下來我們需要在resources目錄下建立乙個xml檔案,就叫做logback spring.xml 為什麼要起這個名字呢,因為起這個名字springboot2.1會自己去找該檔案,裡面內容如下 1.0 encoding utf 8 scan scanperiod 30 se...
Nodejs 日誌websocket實時輸出
有這樣乙個需求,想要通過websocket檢視某些日誌檔案的輸出 新的檔案,或者是新新增的內容,可以按行輸出 並且需要實時的,可採用系統的tail並結合spawn命令進行。package.json 安裝 npm installindex.js let fs require fs let spawn ...