設置spring-boot的logging

spring-boot默認使用logback來記錄logger员舵,spring-boot的包里面org.springframework.boot.logging.logback路徑下面有一些配置文件很澄,默認的情況下會使用base.xml泡躯,它把日志輸出到控制臺和文件之中心包。它的內(nèi)容是:

<included>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</included>

對于輸出到文件消请,如果設置了logging.file就使用該值作為文件名稱,如果設置了logging.path就使用logging.path/spring.log作為文件名稱昨悼,如果都沒有設置就放入臨時文件中。

那么問題來了氓拼,如果要寫入文件的話,一個文件不會被寫得很大嗎?
這個時候就可以看base.xml里面includeorg/springframework/boot/logging/logback/file-appender.xml

我們來看看org/springframework/boot/logging/logback/file-appender.xml里面是什么東西

<included>
    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy
            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>
</included>

是的桃漾,默認的配置里面有個SizeBasedTriggeringPolicy來表示文件的大小坏匪,每個文件到了10MB的時候就會重新開啟一個文件,并且把之前的名稱命名成${LOG_FILE}.%i撬统,這樣就解決了日志文件過大的問題适滓。

有人可能想問,這些都是默認的配置恋追,如果我不想使用默認的配置凭迹,我想按照天來切割日志,應該如何設置呢苦囱?

可以在resources目錄下面創(chuàng)建一個logback-spring.xml的文件嗅绸,并且給出自己想要的配置,這里給一個簡單的配置是的日志文件可以按天為單位來切割日志文件

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
     <appender name="TIME_FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i</fileNamePattern>
            <maxHistory>365</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
     </appender>
     <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="TIME_FILE" />
     </root>
</configuration>

上面%d{yyyy-MM-dd}表示命名的文件名字以原始的名字后面加上日期作為后綴撕彤,<maxFileSize>100MB</maxFileSize>表示每個文件大小為100MB鱼鸠。這樣日志文件就會以日期來進行切割并且進行保存了。

所以說如果要自定義日志的格式羹铅, 就可以通過自己編寫logback-spring.xml這個文件來自己定義了蚀狰。

最后在配置文件appication.yaml設置好文件名稱和日志級別就可以了

spring:  
  application:    
    name: spring-boot-logging

logging:  
  file: ./logs/spring-boot-logging.log  
  level:    
    com.dragon.study.spring.boot: DEBUG

如果需要在logback-spring.xml自定義一些配置文件,可以使用

    <springProperty scope="context" name="SYSLOG_HOST" source="logging.syslog.host" defaultValue="syslog.hostname" />
    <springProperty scope="context" name="SYSLOG_FACILITY" source="logging.syslog.facility" defaultValue="LOCAL7"/>

    <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
        <syslogHost>${SYSLOG_HOST}</syslogHost>
        <facility>${SYSLOG_FACILITY}</facility>
    </appender>

然后在appication.yaml的配置文件中加入

logging.syslog.facility: syslog.change.hostname
logging.syslog.facility: LOCAL1

配置進行替代默認值

PS: 遇到一個坑睦裳, 就是想關掉某個包下面的日志造锅,不能直接

logging:  
  level:    
    com.dragon.study.spring.boot: OFF

因為OFF是yaml的關鍵字,上面那么寫沒有任何作用
所以如果想關掉某個包下面的日志的正確方法是 OFF上面加上單引號

logging:  
  file: ./logs/spring-boot-logging.log  
  level:    
    com.dragon.study.spring.boot: 'OFF'
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廉邑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倒谷,更是在濱河造成了極大的恐慌蛛蒙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渤愁,死亡現(xiàn)場離奇詭異牵祟,居然都是意外死亡,警方通過查閱死者的電腦和手機抖格,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門诺苹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雹拄,你說我怎么就攤上這事收奔。” “怎么了滓玖?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵坪哄,是天一觀的道長。 經(jīng)常有香客問我,道長翩肌,這世上最難降的妖魔是什么模暗? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮念祭,結(jié)果婚禮上兑宇,老公的妹妹穿的比我還像新娘。我一直安慰自己粱坤,他們只是感情好顾孽,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著比规,像睡著了一般若厚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜒什,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天测秸,我揣著相機與錄音,去河邊找鬼灾常。 笑死霎冯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的钞瀑。 我是一名探鬼主播沈撞,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雕什!你這毒婦竟也來了缠俺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤贷岸,失蹤者是張志新(化名)和其女友劉穎壹士,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偿警,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡躏救,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了螟蒸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盒使。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖七嫌,靈堂內(nèi)的尸體忽然破棺而出少办,到底是詐尸還是另有隱情,我是刑警寧澤抄瑟,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布凡泣,位于F島的核電站枉疼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鞋拟。R本人自食惡果不足惜骂维,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贺纲。 院中可真熱鬧航闺,春花似錦、人聲如沸猴誊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懈叹。三九已至乖杠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間澄成,已是汗流浹背胧洒。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留墨状,地道東北人卫漫。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像肾砂,于是被迫代替她去往敵國和親列赎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

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