SpringBoot Logback實現日誌輸出

2021-10-07 07:37:33 字數 2845 閱讀 7930

在日常專案中,我們有可能會遇到各式各樣的異常錯誤。而排查這些異常的最有效的入口就是分析日誌。所以,每乙個線上的專案都必須要有一套完成的列印機制。以確保系統出問題之後可以有根可續。

本文我們將結合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 ...