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