SpringBoot詳細(xì)講解日志文件
1 日志的功能是什么?
如果程序報錯了, 卻不能從控制臺查看日志, 那么就不知道錯誤的原因了.
日志的功能 :
- 快速的排查和定位問題
- 記錄用戶登錄的日志
- 記錄系統(tǒng)的操作日志
- 記錄程序的執(zhí)行時間
2 如何自定義日志打印
自定義日志的打印步驟 :
第一步: 在程序當(dāng)中獲取日志對象
第二步: 調(diào)用日志對象的打印方法, 將信息打印出來
2.1 在程序中獲取日志對象
獲取日志對象需要使用日志工廠 LoggerFactory
這里的 Logger
對象屬于 org.slf4j
包下.
// 1. 得到日志對象 private static final Logger logger = LoggerFactory.getLogger(UserController.class);
SpringBoot中內(nèi)置了 日志框架slf4j
, 可以直接在程序中調(diào)用slf4j
來輸出日志
2.2 調(diào)用日志對象打印日志
日志對象的打印方法有很多, 目前展示這一個
// 2. 使用日志對象打印日志 logger.info("日志級別:info");
2.3 查看日志打印的結(jié)果
3 日志的級別
有了日志的級別, 開發(fā)者就可以設(shè)置日志級別, 從而得到對自己有用的日志信息, 大大節(jié)省了分類的成本.
3.1 日志級別的分類
日志的級別分為:
trace
:普通微量的日志信息debug
: 調(diào)式的時候的日志信息info
: 普通的日志信息 (默認(rèn)日志級別)warn
: 警告的日志信息error
: 錯誤的日志信息fatal
: 致命錯誤,最高日志級別
日志級別的順序 :
3.2 日志級別的設(shè)置
在配置文件中配置日志級別
.properties
中的格式
logging.level.root=error
.yml
中的格式
logging:
level:
root: info
輸出
如果設(shè)置的是info級別.那么級別低于info的就不輸出了.
日志輸出級別, 默認(rèn)是info
4 日志持久化
上面演示的日志, 都是輸出在控制臺的, 如果在生產(chǎn)環(huán)境下, 想要保存這些日志, 方便日后查看日志. 這里的把日志保存下來, 就叫做持久化
注意: 默認(rèn)情況下SpringBoot會有一個最大的日志大小限制, 如果日志的文件大于默認(rèn)的最大日志大小, 那么SpringBoot會重新
配置日志文件的保存路徑
logging:
file:
path: D:/logs
配置日志文件的文件名
logging:
file:
name: D:/logs/spring.log
運行后查看文件
5 更簡單的日志輸出
如何在SpringBoot中快速添加依賴?
下載插件 EditStarters
5.1 添加 lombok 依賴
在 pom.xml
里右擊 選則 Generate
記得刷新以下maven
5.2 輸出日志
首先添加 @Slf4j
注解
使用log對象打印日志, 例如 log.error()
@Controller @Slf4j public class UsersController { @RequestMapping("/log") @ResponseBody public String printLog() { log.error("error"); return "Log"; } }
5.3 lombok 更多的注解
普通注解
注解 | 作用 |
---|---|
@Getter | ?動添加 getter ?法 |
@Setter | ?動添加 setter ?法 |
@ToString | ?動添加 toString ?法 |
@EqualsAndHashCode | ?動添加 equals 和 hashCode ?法 |
@NoArgsConstructor | ?動添加?參構(gòu)造?法 |
@AllArgsConstructor | ?動添加全屬性構(gòu)造?法,順序按照屬性的定義順序 |
@NonNull | 屬性不能為 null |
@RequiredArgsConstructor | ?動添加必需屬性的構(gòu)造?法,final + @NonNull 的屬性為必需 |
組合注解
注解 | 作用 |
---|---|
@Data | @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor |
日志注解
注解 | 作用 |
---|---|
@Slf4j | 添加?個名為 log 的?志,使? slf4 |
到此這篇關(guān)于SpringBoot詳細(xì)講解日志文件的文章就介紹到這了,更多相關(guān)SpringBoot日志文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java并發(fā)編程service層處理并發(fā)事務(wù)加鎖可能會無效問題
這篇文章主要介紹了Java并發(fā)編程service層處理并發(fā)事務(wù)加鎖可能會無效問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07java代理模式(靜態(tài)代理、動態(tài)代理、cglib代理)
代理(Proxy)是一種設(shè)計模式,提供了對目標(biāo)對象另外的訪問方式;這篇文章主要介紹了Java 中的三種代理模式,需要的朋友可以參考下,希望能給你帶來幫助2021-07-07SpringMVC中的HandlerMapping和HandlerAdapter詳解
這篇文章主要介紹了SpringMVC中的HandlerMapping和HandlerAdapter詳解,在Spring MVC中,HandlerMapping(處理器映射器)用于確定請求處理器對象,請求處理器可以是任何對象,只要它們使用了@Controller注解或注解@RequestMapping,需要的朋友可以參考下2023-08-08System.getProperty(“l(fā)ine.separator“)含義及意義詳解
這篇文章主要介紹了System.getProperty(“l(fā)ine.separator“)含義,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05Java中的do while循環(huán)控制語句基本使用
這篇文章主要介紹了Java中的do while循環(huán)控制語句基本使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Java學(xué)習(xí)筆記:關(guān)于Java?double類型相加問題
這篇文章主要介紹了關(guān)于Java?double類型相加問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12