SpringBoot 整合Logback框架

新日志框架LogBack介紹

1.常用處理java的日志組件 slf4j,log4j,logback,common-logging 等

2、logback介紹:基于Log4j基礎(chǔ)上大量改良弹谁,不能單獨(dú)使用瞳腌,推薦配合日志框架SLF4J來(lái)使用
logback當(dāng)前分成三個(gè)模塊:logback-core,logback-classic和logback-access;
logback-core是其它兩個(gè)模塊的基礎(chǔ)模塊

3娩井、Logback的核心對(duì)象:
Logger:日志記錄器
Appender:指定日志輸出的目的地芽隆,目的地可以是控制臺(tái)青自,文件
Layout:日志布局 格式化日志信息的輸出
4葫隙、日志級(jí)別:DEBUG < INFO < WARN < ERROR

log4j配置===========log4j示例===========

設(shè)置

log4j.rootLogger = debug,stdout,D,E

輸出信息到控制抬

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

輸出DEBUG 級(jí)別以上的日志到=D://logs/error.log

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

輸出ERROR 級(jí)別以上的日志到=D://logs/error.log

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

SpringBoot2.x日志講解和自定義Logback配置實(shí)戰(zhàn)

分析SpringBoot啟動(dòng)日志
默認(rèn)情況下栽烂,Spring Boot將日志輸出到控制臺(tái)

整合Logback實(shí)戰(zhàn)
-創(chuàng)建 日志文件logback-spring.xml,官方推薦 -spring.xml結(jié)尾
-默認(rèn)加載加載配置順序 logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy

注釋:
<configuration> 子節(jié)點(diǎn)
<appender></appender>
<logger></logger>
<root></root>(要加在最后)

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

    <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoApp"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!-- 滾動(dòng)策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路徑 -->
            <fileNamePattern>app_log/log/app.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorApp"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>

        <!-- 設(shè)置滾動(dòng)策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路徑 -->
            <fileNamePattern>app_log/log/app.err.%d.log</fileNamePattern>
            <!-- 控制保留的歸檔文件的最大數(shù)量恋脚,超出數(shù)量就刪除舊文件腺办,假設(shè)設(shè)置每個(gè)月滾動(dòng), 且<maxHistory> 是1糟描,則只保存最近1個(gè)月的文件怀喉,刪除之前的舊文件 -->
        </rollingPolicy>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="consoleApp" />
        <appender-ref ref="fileInfoApp" />
        <appender-ref ref="fileErrorApp" />
    </root>
</configuration>    

文件位置位于resource目錄下

編寫controller 測(cè)試

package vip.buildup.demo.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//封裝的消息返回
import vip.buildup.demo.domain.JsonData;

@RestController
@RequestMapping("/api/v2")
public class TestLogBackController {
    private Logger logger = LoggerFactory.getLogger(this.getClass());
    @GetMapping("test_log")
    public Object testLog() {
        logger.debug("this is debug level");
        logger.info("this is debug level");
        logger.warn("this is debug level");
        logger.error("this is debug level");
        return JsonData.buildSuccess();
    }   
}

測(cè)試接口后,刷新項(xiàng)目船响,項(xiàng)目路徑下 生成app_log目錄躬拢,目錄下生成日志文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末见间,一起剝皮案震驚了整個(gè)濱河市聊闯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌米诉,老刑警劉巖菱蔬,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異史侣,居然都是意外死亡拴泌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門惊橱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蚪腐,“玉大人,你說(shuō)我怎么就攤上這事李皇∠髯拢” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵掉房,是天一觀的道長(zhǎng)茧跋。 經(jīng)常有香客問我,道長(zhǎng)卓囚,這世上最難降的妖魔是什么瘾杭? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮哪亿,結(jié)果婚禮上粥烁,老公的妹妹穿的比我還像新娘贤笆。我一直安慰自己,他們只是感情好讨阻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布芥永。 她就那樣靜靜地躺著,像睡著了一般钝吮。 火紅的嫁衣襯著肌膚如雪埋涧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天奇瘦,我揣著相機(jī)與錄音棘催,去河邊找鬼。 笑死耳标,一個(gè)胖子當(dāng)著我的面吹牛醇坝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播次坡,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呼猪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贸毕?” 一聲冷哼從身側(cè)響起郑叠,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎明棍,沒想到半個(gè)月后乡革,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摊腋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年沸版,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兴蒸。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡视粮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橙凳,到底是詐尸還是另有隱情蕾殴,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布岛啸,位于F島的核電站钓觉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏坚踩。R本人自食惡果不足惜荡灾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧批幌,春花似錦础锐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至截粗,卻和暖如春耀怜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桐愉。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掰派,地道東北人从诲。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像靡羡,于是被迫代替她去往敵國(guó)和親系洛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354