logback配置

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

<!-- debug:打印logback內(nèi)部日志信息砚哆,實時查看logback的運行狀態(tài)兵拢,默認為false -->
<!-- scan:配置文件如果發(fā)生改變妻顶,是否被重新加載俭茧,默認為true。 -->
<!-- scanPeriod:設置檢測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒,默認的時間間隔為1分鐘斯棒,默認為true。 -->
<configuration debug="true" scan="true" scanPeriod="30 seconds">
    <contextName>SpringBoot Demo</contextName>
    <!-- 時間戳定義主经,timeReference:使用日志產(chǎn)生日期為時間基準 -->
    <timestamp key="byDay" datePattern="yyyy-MM-dd" timeReference="contextBirth"/>

    <!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑荣暮,可以使用系統(tǒng)變量 -->
    <!-- <property name="LOG_HOME" value="${app.home}/log" /> -->
    <property name="LOG_HOME" value="log"/>

    <!-- appender很重要,一個配置文件會有多個appender -->
    <!-- ConsoleApperder意思是從console中打印出來 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- On Windows machines setting withJansi to true enables ANSI
         color code interpretation by the Jansi library. This requires
         org.fusesource.jansi:jansi:1.8 on the class path.  Note that
         Unix-based operating systems such as Linux and Mac OS X
         support ANSI color codes by default. 
         http://blog.csdn.net/u013613428/article/details/51499552
       -->
        <withJansi>true</withJansi>
        <!-- 過濾器罩驻,一個appender可以有多個 -->
        <!-- 閾值過濾穗酥,就是log行為級別過濾,debug及debug以上的信息會被打印出來 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <!-- encoder編碼規(guī)則 -->
        <encoder>
            <!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
            <!--<pattern>%d %contextName %msg%n</pattern>-->
            <!-- pattern模式 %d時間 %thread 線程名 %level行為級別 %logger logger名稱 %method 方法名稱 %message 調(diào)用方法的入?yún)⑾?-->
            <pattern>%-4d [%green(%thread)] %highlight(%-5level) %cyan(%logger).%-10method - %message%n</pattern>
        </encoder>
 <!-- 常用的Pattern變量,大家可打開該pattern進行輸出觀察 -->
        <!-- 
          <pattern>
              %d{yyyy-MM-dd HH:mm:ss} [%level] - %msg%n
              Logger: %logger
              Class: %class
              File: %file
              Caller: %caller
              Line: %line
              Message: %m
              Method: %M
              Relative: %relative
              Thread: %thread
              Exception: %ex
              xException: %xEx
              nopException: %nopex
              rException: %rEx
              Marker: %marker
              %n
              
          </pattern>
           -->
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 日志輸出文件 -->
        <file>${LOG_HOME}/LoggingBack.log</file>
        <!-- 追加日志到原文件結(jié)尾 -->
        <append>true</append>
        <!-- timebasedrollingpolicy:演示時間和大小為基礎的日志文件歸檔 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 歸檔的日志文件的路徑,例如今天是2013-12-21日志砾跃,當前寫的日志文件路徑為file節(jié)點指定骏啰。 -->
            <!--可以將此文件與file指定文件路徑設置為不同路徑,從而將當前日志文件或歸檔日志文件置不同的目錄抽高。 -->
            <!--而2013-12-21的日志文件在由fileNamePattern指定判耕。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
            <!-- 文件滾動日期格式:每天:.YYYY-MM-dd(默認)翘骂;每星期:.YYYY-ww壁熄;每月:.YYYY-MM -->
            <!-- 每隔半天:.YYYY-MM-dd-a;每小時:.YYYY-MM-dd-HH碳竟;每分鐘:.YYYY-MM-dd-HH-mm -->
            <fileNamePattern>${LOG_HOME}/log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 控制歸檔文件的最大數(shù)量的保存请毛,刪除舊的文件,默認單位天數(shù) -->
            <maxHistory>7</maxHistory>
            <!-- 設置當前日志的文件的大小瞭亮,決定日志翻滾 -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 除按日志記錄之外,還配置了日志文件不能超過10M(默認)固棚,若超過10M统翩,日志文件會以索引0開始, -->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
<!-- encoders 作用是將logger事件轉(zhuǎn)換成字節(jié)數(shù)組此洲,并將字節(jié)數(shù)組寫入到輸出流-->

        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="FILE-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 這里添加一個過濾器 -->
        <file>${LOG_HOME}/LoggingBack-info.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/LOG-INFO-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 這里添加一個過濾器 -->
        <file>${LOG_HOME}/LoggingBack-error.log</file>
        <!--<filter>標簽厂汗。
        過濾器,執(zhí)行一個過濾器會有返回個枚舉值呜师,即DENY娶桦,NEUTRAL,ACCEPT其中之一汁汗。
        返回DENY衷畦,日志將立即被拋棄不再經(jīng)過其他過濾器;
        返回NEUTRAL知牌,有序列表里的下個過濾器過接著處理日志祈争;
        返回ACCEPT,日志會被立即處理角寸,不再經(jīng)過剩余過濾器菩混。
        過濾器被添加到<Appender> 中,為<Appender> 添加一個或多個過濾器后扁藕,可以用任意條件對日志進行過濾沮峡。<Appender> 有多個過濾器時,按照配置順序執(zhí)行亿柑。
       -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/LOG-ERROR-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- 可以寫多個日志文件appender邢疙,然后區(qū)分多個模塊的日志 -->
    <appender name="BACKUP" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/LoggingBack2.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/LOG-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
            </pattern>
        </encoder>
    </appender>

    <!-- 為單獨的包配置日志級別,若root的級別大于此級別, 此處級別也會輸出
       應用場景:生產(chǎn)環(huán)境一般不會將日志級別設置為trace或debug秘症,但是為詳細的記錄SQL語句的情況照卦,
       可將hibernate的級別設置為debug,如此一來乡摹,日志文件中就會出現(xiàn)hibernate的debug級別日志役耕,
       而其它包則會按root的級別輸出日志
   -->
    <logger name="org.hibernate.SQL" level="DEBUG"/>
    <logger name="org.hibernate.jdbc" level="DEBUG"/>
    <logger name="org.springframework" level="DEBUG"/>

    <!-- 指定一個包,name必填聪廉,additivity選填:控制是否繼承父類appender瞬痘,默認true -->
    <!-- level選填,如果木有指定從最近的父類繼承板熊,頂級為root的級別 -->
    <logger name="com.wisely.ch7_7" additivity="true">
        <appender-ref ref="FILE"/>
        <appender-ref ref="FILE-INFO"/>
        <appender-ref ref="FILE-ERROR"/>
        <appender-ref ref="BACKUP"/>
    </logger>
    <!-- root, 只有在level及以上級別的日志會被輸出 -->
    <!-- 例如: 當root level設置為INFO時, appender DEBUG中無法獲取到DEBUG級別的日志事件, 則DEBUG日志信息也不會寫入debug.log中. -->
    <root level="DEBUG">
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末框全,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子干签,更是在濱河造成了極大的恐慌津辩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件容劳,死亡現(xiàn)場離奇詭異喘沿,居然都是意外死亡,警方通過查閱死者的電腦和手機竭贩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門蚜印,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人留量,你說我怎么就攤上這事窄赋。” “怎么了楼熄?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵忆绰,是天一觀的道長。 經(jīng)常有香客問我可岂,道長较木,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任青柄,我火速辦了婚禮伐债,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘致开。我一直安慰自己峰锁,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布双戳。 她就那樣靜靜地躺著虹蒋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魄衅,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天峭竣,我揣著相機與錄音,去河邊找鬼晃虫。 笑死皆撩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的哲银。 我是一名探鬼主播扛吞,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荆责!你這毒婦竟也來了滥比?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤做院,失蹤者是張志新(化名)和其女友劉穎盲泛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體键耕,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡查乒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了郁竟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡由境,死狀恐怖棚亩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情虏杰,我是刑警寧澤讥蟆,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站纺阔,受9級特大地震影響瘸彤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笛钝,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一质况、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧玻靡,春花似錦结榄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春视哑,著一層夾襖步出監(jiān)牢的瞬間绣否,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工挡毅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒜撮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓慷嗜,卻偏偏與公主長得像淀弹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子庆械,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

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