SpringBoot日志管理

在代碼有問題的時候,很多人應該都是通過 debug 的方式去排查,往往忽略了日志的重要性。

好的日志管理可以快速定位問題出現(xiàn)的位置坦仍,也可以提高代碼的閱讀性。這篇博文主要介紹一下 Spring Boot 中關于日志方面的知識叨襟。

一繁扎、Logging 介紹

Spring Boot 為 Java Util Logging,Log4J2 和 Logback 提供了默認配置糊闽。每個日志框架梳玫,都默認配置了控制臺輸出,并且還提供了日志文件輸出功能右犹。

如果你使用 Spring Boot 的 Starters提澎,那么默認使用的日志框架是 Logback。Spring Boot 底層也對 Java Util Logging念链,Commons Logging盼忌,Log4J 或 SLF4J 日志框架進行了適配。因此只要進行相關的設置钓账,就可以實現(xiàn)日志框架的切換碴犬。

提供了這么多日志框架,應該選擇哪一個呢梆暮?不用擔心,在不修改任何日志依賴項的時候绍昂,Spring Boot 的日志框架就可以正常運行啦粹。

二、Logging 格式

Spring Boot 默認日志輸出如下:


  • 日期時間:精確到毫秒
  • 日志級別:ERROR窘游, WARN唠椭, INFO, DEBUG or TRACE
  • 進程 id
  • 分割符:用于區(qū)分實際的日志記錄
  • 線程名:括在方括號中
  • 日志名字:通常是源類名
  • 日志信息

三忍饰、Logging 級別

日志級別從低到高依次是:TRACE < DEBUG < INFO < WARN < ERROR < FATAL贪嫂。Logback 日志不提供 FATAL 級別,它被映射到 ERROR 級別艾蓝。

Spring Boot 只會輸出比當前級別高的日志力崇,默認的日志級別是 INFO,因此低于 INFO 級別的日志記錄都不輸出赢织。

可以在 application.properties 配置文件中通過 logging.level.<logger-name>=<level>方式設置日志的級別亮靴。

在默認級別(INFO)下執(zhí)行下面的代碼:

@SpringBootTest
@RunWith(SpringRunner.class)
public class LoggerTest {

    private static final Logger logger = LoggerFactory.getLogger(LoggerTest.class);

    @Test
    public void test() {
        logger.trace("trace 級別的日志");
        logger.debug("debug 級別的日志");
        logger.info("info 級別的日志");
        logger.warn("warn 級別的日志");
        logger.error("error 級別的日志");
    }
}

控制臺輸出如下:


四、other

4.1 日志文件輸出

默認情況下于置,Spring Boot 日志僅輸出在控制臺茧吊,不會寫入日志文件。如果想要寫入日志文件,需要在
application.properties 中設置 logging.filelogging.path 屬性搓侄。
logging.file:設置文件瞄桨,可以是絕對路徑,也可以是相對路徑讶踪。
logging.path:設置目錄芯侥,會在該目錄下創(chuàng)建一個 spring.log 文件,寫入日志內容

日志文件在達到 10 MB 時會輪換俊柔,并且與控制臺輸出一樣筹麸,默認情況下會記錄 ERROR 級別,WARN 級別和 INFO 級別的消息雏婶。 可以使用 logging.file.max-size 屬性更改大小限制物赶。

4.2 通用配置

下面是 application.properties 文件中關于日志的配置,貼出來供大家參考留晚。

# 啟用日志顏色
spring.output.ansi.enabled=always
logging.level.root=INFO
# mapper 接口所在的包設置為 debug
logging.level.com.×××.mapper=DEBUG
# 在當前項目下生成日志文件
logging.file=./logs/×××.log
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %clr(%logger){cyan} %clr(%msg%n){green}
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

PS:

雖然 Spring Boot 適配了多種日志框架酵紫,一般情況下,我們不會切換掉 Logback错维,因為 Logback 相對于其他的日志框架速度更快奖地,占用內存更少。

原文鏈接:https://blog.csdn.net/codejas/java/article/details/82144667

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末赋焕,一起剝皮案震驚了整個濱河市参歹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隆判,老刑警劉巖犬庇,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侨嘀,居然都是意外死亡臭挽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門咬腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欢峰,“玉大人,你說我怎么就攤上這事涨共∨μ” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵煞赢,是天一觀的道長抛计。 經(jīng)常有香客問我,道長照筑,這世上最難降的妖魔是什么吹截? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任瘦陈,我火速辦了婚禮,結果婚禮上波俄,老公的妹妹穿的比我還像新娘晨逝。我一直安慰自己,他們只是感情好懦铺,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布捉貌。 她就那樣靜靜地躺著,像睡著了一般冬念。 火紅的嫁衣襯著肌膚如雪趁窃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天急前,我揣著相機與錄音醒陆,去河邊找鬼。 笑死裆针,一個胖子當著我的面吹牛刨摩,可吹牛的內容都是我干的。 我是一名探鬼主播世吨,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼澡刹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耘婚?” 一聲冷哼從身側響起罢浇,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沐祷,沒想到半個月后己莺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡戈轿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了阵子。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片思杯。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挠进,靈堂內的尸體忽然破棺而出色乾,到底是詐尸還是另有隱情,我是刑警寧澤领突,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布暖璧,位于F島的核電站,受9級特大地震影響君旦,放射性物質發(fā)生泄漏澎办。R本人自食惡果不足惜嘲碱,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望局蚀。 院中可真熱鬧麦锯,春花似錦、人聲如沸琅绅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽千扶。三九已至料祠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澎羞,已是汗流浹背髓绽。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留煤痕,地道東北人梧宫。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像摆碉,于是被迫代替她去往敵國和親塘匣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內容