四遥诉、springBoot 整合日志之logback

Logbacklog4j框架的作者開發(fā)的新一代日志框架,它效率更高噪叙、能夠適應(yīng)諸多的運行環(huán)境矮锈,同時天然支持SLF4J
默認情況下睁蕾,Spring Boot會用Logback來記錄日志苞笨,并用INFO級別輸出到控制臺债朵。

1. 添加依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

但是,其實是不需要引入該依賴的瀑凝,因為你會發(fā)現(xiàn)spring-boot-starter其中包含了 spring-boot-starter-logging序芦,具體看下圖

springBoot依賴圖

2. 增加配置 -(方式一 application.yml)

org.springframework.boot.logging.logback包下提供了默認的logback配置文件base.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
Base logback configuration provided for compatibility with Spring Boot 1.1
-->

<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>

所以springBoot支持在application.propertiesapplication.yml中配置logging相關(guān)屬性,簡單配置如下

# 系統(tǒng)相關(guān)配置
server:
  port: 8082
  connection-timeout: 30000
  servlet:
    context-path: /
# 自定義
project: springboot-logback
pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n"
path: D:\logs\logback\

# 日志相關(guān)配置
logging:
  level:
    com.springboot.my: info
  pattern:
    console: ${pattern}
    file: ${pattern}
  path: ${path}
  file: ${path}\${project}-app.log

經(jīng)過驗證粤咪,日志打印正常


logback日志

3. 增加配置 -(方式二 logback.yml)

  • 注釋掉application.yml中有關(guān)log相關(guān)的配置
# 系統(tǒng)相關(guān)配置
server:
  port: 8082
  connection-timeout: 30000
  servlet:
    context-path: /
# 自定義
#project: springboot-logback
#pattern: "%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n"
#path: D:\logs\logback\
#
## 日志相關(guān)配置
#logging:
#  level:
#    com.springboot.my: info
#  pattern:
#    console: ${pattern}
#    file: ${pattern}
#  path: ${path}
#  file: ${path}\${project}-app.log
  • resource目錄下增加logback.xml谚中,具體配置如下
<!--
scan:當此屬性設(shè)置為true時,配置文件如果發(fā)生改變射窒,將會被重新加載藏杖,默認值為true。
scanPeriod:設(shè)置監(jiān)測配置文件是否有修改的時間間隔脉顿,如果沒有給出時間單位蝌麸,默認單位是毫秒。當scan為true時艾疟,此屬性生效来吩。默認的時間間隔為1分鐘。
debug:當此屬性設(shè)置為true時蔽莱,將打印出logback內(nèi)部日志信息弟疆,實時查看logback運行狀態(tài)。默認值為false盗冷。
-->
<configuration debug="false" scan="true" scanPeriod="60 seconds" packagingData="true">
    <!--
    property:用來定義變量值的標簽怠苔,<property> 有兩個屬性,name和value仪糖。通過<property>定義的值會被插入到logger上下文中柑司。定義變量后,可以使“${}”來使用變量锅劝。
    例如使用<property>定義上下文名稱攒驰,然后在<contentName>設(shè)置logger上下文時使用。
    -->
    <property name="contextName" value="springboot-lb" />
    <!--
    contextName:每個logger都關(guān)聯(lián)到logger上下文故爵,默認上下文名稱為“default”玻粪。
    但可以使用<contextName>設(shè)置成其他名字,用于區(qū)分不同應(yīng)用程序的記錄诬垂。一旦設(shè)置劲室,不能修改。
    -->
    <contextName>${contextName}</contextName>

    <!-- ******************** appender:日志目的地 start ******************** -->

    <!-- 標準輸出:console -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder 默認配置為PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 文件輸出:file -->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--<file></file>-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件輸出的文件名-->
            <FileNamePattern>D:\logs\logback\${contextName}-%d{yyyyMMdd}.log</FileNamePattern>
        </rollingPolicy>
        <encoder>
            <!--格式化輸出:%d表示日期剥纷,%thread表示線程名痹籍,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%n</pattern>
        </encoder>
        <!--日志文件最大的大小-->
        <!--
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
          <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
        -->
    </appender>

    <!-- ******************** appender:日志目的地 end ******************** -->

    <!-- ******************** root:定義日志的level晦鞋、appender蹲缠,且最多只能配置一個 start ******************** -->

    <!--TRACE < DEBUG < INFO <  WARN < ERROR-->
    <root>
        <level value="INFO" />
        <appender-ref ref="file" />
        <appender-ref ref="console" />
    </root>

    <!-- ******************** root:定義日志的level棺克、appender,且最多只能配置一個 end ******************** -->
    <!-- ******************** logger:精確配置package或class的level线定、appender,可以配置0個或多個 end ******************** -->
    <!--
    level:日志級別(logger中的level會覆蓋root中的娜谊,即以logger中為準,不管是否向上傳遞)
    name:包名 或 類的全路徑
    addtivity:日志信息是否向上(root)傳遞
    -->
    <!-- 包名 -->
    <logger name="com.springboot.my" />
    <!-- 類的全路徑 -->
    <logger name="com.springboot.my.SpringBootLogbackApplication" level="warn" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </logger>
    <!-- ******************** logger:精確配置package或class日志的level斤讥、appender end ******************** -->
</configuration>
  • 項目啟動驗證纱皆,日志輸出正常


    logback日志文件輸出
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芭商,隨后出現(xiàn)的幾起案子派草,更是在濱河造成了極大的恐慌,老刑警劉巖铛楣,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件近迁,死亡現(xiàn)場離奇詭異,居然都是意外死亡簸州,警方通過查閱死者的電腦和手機鉴竭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岸浑,“玉大人搏存,你說我怎么就攤上這事∈钢蓿” “怎么了璧眠?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長读虏。 經(jīng)常有香客問我蛆橡,道長,這世上最難降的妖魔是什么掘譬? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮呻拌,結(jié)果婚禮上葱轩,老公的妹妹穿的比我還像新娘。我一直安慰自己藐握,他們只是感情好靴拱,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猾普,像睡著了一般袜炕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上初家,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天偎窘,我揣著相機與錄音乌助,去河邊找鬼剖踊。 笑死蛾魄,一個胖子當著我的面吹牛洛史,可吹牛的內(nèi)容都是我干的嗓节。 我是一名探鬼主播屡穗,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼比庄,長吁一口氣:“原來是場噩夢啊……” “哼元践!你這毒婦竟也來了讯蒲?” 一聲冷哼從身側(cè)響起沿盅,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤把篓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腰涧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體韧掩,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年南窗,在試婚紗的時候發(fā)現(xiàn)自己被綠了揍很。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡万伤,死狀恐怖窒悔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情敌买,我是刑警寧澤简珠,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站虹钮,受9級特大地震影響聋庵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芙粱,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一祭玉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧春畔,春花似錦脱货、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至择份,卻和暖如春扣孟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荣赶。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工凤价, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸽斟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓料仗,卻偏偏與公主長得像湾盗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子立轧,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

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