SpringBoot攻略十啄踊、日志記錄logback

SpringBoot默認(rèn)使用LogBack日志系統(tǒng),LogBack默認(rèn)將日志打印到控制臺(tái)上刁标。
默認(rèn)情況下會(huì)記錄ERROR-level颠通,WARN-level和INFO-level消息。

啟用調(diào)試模式膀懈,會(huì)打印很多無用信息顿锰,一般不設(shè)置:
application.properties配置debug=true

如何輸出日志到文件

application.properties配置如下:
logging.path=D:/log
logging.file=springboot.log
注意:
在windows下不會(huì)在D:/log下創(chuàng)建springboot.log,而是在項(xiàng)目根目錄下創(chuàng)建 springboot.log启搂。

如果想要在D:/log創(chuàng)建怎么辦呢硼控?
我們只需要設(shè)置logging.file=D:/log/springboot.log,logging.path無需做任何設(shè)置胳赌。

logging.file.max-size
設(shè)置文件大小牢撼,默認(rèn)為10M,達(dá)到限制后會(huì)切換一個(gè)新文件疑苫。
logging.file.max-history
以前日志文件歸檔大小熏版,只保留多久或多大的日志,如果不設(shè)置就會(huì)無限期歸檔捍掺。
logging.file.total-size-cap
日志歸檔的總大小撼短,當(dāng)日志存檔的總大小超過該閾值時(shí),將刪除備份挺勿。

如何設(shè)置日志級(jí)別

日志級(jí)別總共有TARCE < DEBUG < INFO < WARN < ERROR < FATAL 曲横,且級(jí)別是逐漸提供, 如果日志級(jí)別設(shè)置為INFO满钟,則意味TRACE和DEBUG級(jí)別的日志都看不到胜榔。

Spring Boot默認(rèn)級(jí)別就是INFO胳喷。

applicaition.properties配置(logging.level配置日志級(jí)別):
logging.level.root=INFO
root:即項(xiàng)目的所有日志。

使用package級(jí)別
logging.level.druid.sql=DEBUG

如何定制日志格式

logging.pattern.console=
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger[%line] - %msg%n
logging.pattern.file=
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger[%line] - %msg%n

%d{yyyy-MM-dd HH:mm:ss.SSS}——日志輸出時(shí)間
%thread——輸出日志的進(jìn)程名字夭织,這在Web應(yīng)用以及異步任務(wù)處理中很有用
%-5level——日志級(jí)別吭露,并且使用5個(gè)字符靠左對(duì)齊
%logger——日志輸出者的名字
%line——行號(hào)
%msg——日志消息
%n——平臺(tái)的換行符

自定義日志配置

logback:默認(rèn)加載logback-spring.xml,logback-spring.groovy尊惰,logback.xml讲竿,或者 logback.groovy;
Log4j: 默認(rèn)加載log4j-spring.xml弄屡,log4j.xml题禀;
JDK: 默認(rèn)加載logging.properties,都是類路徑下膀捷。

如果需要自定義文件:
logging.config=classpath:conf/xml/logback.xml # 用于配置外部logback.xml

實(shí)例logback-spring.xml(推薦)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- tomcat路徑為:D:\tomcat\bin
        value="logs"或者value="./logs"    – D:\tomcat\bin\logs
        value="/logs"                   – D:\logs
        value="../logs"                 – D:\tomcat\logs -->
    <property name="LOG_HOME" value="/var/logs/GeneralSBM" />
    <property name="LOG_ERROR_HOME" value="/var/logs/GeneralSBM/error" />
    
    <!-- 控制臺(tái)輸出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger[%line] - %msg %n</pattern>
        </encoder>
    </appender>

    <!-- 文件輸出 -->
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- <file>${LOG_HOME}/app.log</file> -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 如果按天來回滾迈嘹,則最大保存時(shí)間為60天,60天之前的都將被清理掉全庸,這里的值與滾動(dòng)策略模式有關(guān) -->
            <maxHistory>60</maxHistory>
            <!-- 按照日期進(jìn)行歸檔秀仲,并且對(duì)日志文件大小進(jìn)行限制 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 設(shè)置文件大于100MB進(jìn)行壓縮歸檔 ,此時(shí)fileNamePattern要加%i -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger[%line] - %msg %n</pattern>
        </encoder>
    </appender>
    
    <!-- ERROR文件輸出 -->
    <appender name="errorRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- <file>${LOG_HOME}/app.log</file> -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_ERROR_HOME}/app.error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 如果按天來回滾壶笼,則最大保存時(shí)間為60天神僵,60天之前的都將被清理掉,這里的值與滾動(dòng)策略模式有關(guān) -->
            <maxHistory>60</maxHistory>
            <!-- 按照日期進(jìn)行歸檔覆劈,并且對(duì)日志文件大小進(jìn)行限制 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 設(shè)置文件大于100MB進(jìn)行壓縮歸檔 保礼,此時(shí)fileNamePattern要加%i -->
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger[%line] - %msg %n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    
    <!-- spring profile不同環(huán)境不同設(shè)置 -->
    <springProfile name="dev,test">
        <!-- 打印sql -->
        <logger name="druid.sql" level="DEBUG" />
    </springProfile>
    
    <springProfile name="prod">
        <logger name="druid.sql" level="INFO" />
    </springProfile>
    
    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="rollingFile" />
        <appender-ref ref="errorRollingFile" />
    </root>
</configuration>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市责语,隨后出現(xiàn)的幾起案子炮障,更是在濱河造成了極大的恐慌,老刑警劉巖鹦筹,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铝阐,死亡現(xiàn)場(chǎng)離奇詭異址貌,居然都是意外死亡铐拐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門练对,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遍蟋,“玉大人,你說我怎么就攤上這事螟凭⌒榍啵” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵螺男,是天一觀的道長(zhǎng)棒厘。 經(jīng)常有香客問我纵穿,道長(zhǎng),這世上最難降的妖魔是什么奢人? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任谓媒,我火速辦了婚禮,結(jié)果婚禮上何乎,老公的妹妹穿的比我還像新娘句惯。我一直安慰自己,他們只是感情好支救,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布抢野。 她就那樣靜靜地躺著,像睡著了一般各墨。 火紅的嫁衣襯著肌膚如雪指孤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天贬堵,我揣著相機(jī)與錄音邓厕,去河邊找鬼。 笑死扁瓢,一個(gè)胖子當(dāng)著我的面吹牛详恼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播引几,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼昧互,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伟桅?” 一聲冷哼從身側(cè)響起敞掘,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楣铁,沒想到半個(gè)月后玖雁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盖腕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年赫冬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溃列。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劲厌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出听隐,到底是詐尸還是另有隱情补鼻,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站风范,受9級(jí)特大地震影響咨跌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜硼婿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一虑润、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧加酵,春花似錦拳喻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至陋葡,卻和暖如春亚亲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腐缤。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工捌归, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岭粤。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓惜索,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剃浇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子巾兆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容