springmvc 配置使用logback日志打印

第一步,添加依賴

    <properties>
        <logback.version>1.2.3</logback.version>
    </properties>
<!-- logback 日志使用 開始 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.24</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.4</version>
        </dependency>
        <!-- logback 日志使用 結(jié)束 -->

第二步配置web.xml 讀取日志文件,并添加監(jiān)聽

<!-- 添加日志監(jiān)聽器 -->
    <context-param>
        <param-name>logbackConfigLocation</param-name>
        <param-value>classpath:logback.xml</param-value>
    </context-param>
    <listener>
        <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
    </listener>

第三步,添加logback.xml到resources下面

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--參數(shù)可以配置在配置文件中,這里要在最上面引入配置文件,使用${key}獲取值 -->
    <property resource="application.properties"/>
    <property name="log.root.level" value="${log.root.level}" /> <!-- 日志級(jí)別 -->
    <property name="log.base" value="/opt/logs/education-government" /> <!-- 日志路徑 -->
    <property name="log.moduleName" value="log" />  <!-- 模塊名稱葡公, 影響日志配置名,日志文件名 -->
    <property name="log.max.size" value="20MB" /> <!-- 日志文件大小 也可以不設(shè)置大小,只按照時(shí)間來滾動(dòng)記錄  -->

    <!--控制臺(tái)輸出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]%logger{56}.%method\(\):%L -%msg%n</Pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>${log.root.level}</level>
        </filter>
    </appender>

    <!-- 按照小時(shí)生成日志文件 -->
    <appender name="INFO"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.base}/${log.moduleName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件輸出的文件名  按照小時(shí)切割  yyyy-MM-dd這樣是按照天滾動(dòng)保存日志-->
            <FileNamePattern>${log.base}/${log.moduleName}_%d{yyyy-MM-dd.HH}.%i.log</FileNamePattern>
           <!--控制最多保留多少數(shù)量 如果是按日滾動(dòng),那么一天有1個(gè)日志文件,240 代表能保存240個(gè)文件,就是 8天 (意思是保存八個(gè)月)  這里是按照HH 到小時(shí),所以一天產(chǎn)生24個(gè),也就是能保存10天的日志量-->
            <MaxHistory>240</MaxHistory>
            <!--日志文件切割大小-->
            <maxFileSize>${log.max.size}</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期条霜,%thread表示線程名催什,%-5level:級(jí)別從左顯示5個(gè)字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--輸出級(jí)別攔截-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>${log.root.level}</level>
        </filter>
    </appender>

    <!--不管什么級(jí)別日志,都只攔截錯(cuò)誤日志-->
    <appender name="ERROR"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${log.base}/${log.moduleName}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件輸出的文件名-->
            <FileNamePattern>${log.base}/${log.moduleName}_%d{yyyy-MM-dd.HH}.%i.log</FileNamePattern>
            <!--日志文件保留小時(shí)數(shù)  如果是按照天切割,則代表是天數(shù)-->
            <MaxHistory>240</MaxHistory>
            <!--日志文件切割大小-->
            <maxFileSize>${log.max.size}</maxFileSize>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化輸出:%d表示日期宰睡,%thread表示線程名蒲凶,%-5level:級(jí)別從左顯示5個(gè)字符寬度%msg:日志消息,%n是換行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>


    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>

    <!-- 用來設(shè)置某一個(gè)包或者具體的某一個(gè)類的日志打印級(jí)別,addtivity代表是否向上級(jí)root傳遞打印信息拆内。默認(rèn)是true-->
    <logger name="com.ssic" >
        <level value="${log.root.level}" />
        <!-- 標(biāo)識(shí)這個(gè)appender將會(huì)添加到這個(gè)logger -->
        <appender-ref ref="stdout" />
        <appender-ref ref="INFO" />
        <appender-ref ref="ERROR" />
    </logger>
    <logger name="org.springframework" additivity="false">
        <level value="${log.root.level}"/>
        <!-- 標(biāo)識(shí)這個(gè)appender將會(huì)添加到這個(gè)logger -->
        <appender-ref ref="stdout" />
        <appender-ref ref="INFO" />
        <appender-ref ref="ERROR" />
    </logger>
    <!-- root 只有一個(gè)level屬性-->
    <root level="${log.root.level}">
        <!-- 標(biāo)識(shí)這個(gè)appender將會(huì)添加到這個(gè)root -->
        <appender-ref ref="stdout" />
        <appender-ref ref="INFO" />
        <appender-ref ref="ERROR" />
    </root>
</configuration>

說明

<logger />標(biāo)簽和<root/> 區(qū)別
1.<logger />標(biāo)簽有三個(gè)屬性
name:可以給一個(gè)包路徑或者具體到某個(gè)類
level:日志打印級(jí)別
addtivity:默認(rèn)值true 是否將logger中的日志上傳到<root />

2 <root/> 是日志最終輸出的跟節(jié)點(diǎn),上面的logger日志也會(huì)從這里輸出出去
只有一個(gè)屬性:level 日志級(jí)別

區(qū)別:
logger可以定制化打印,比如:
<logger name="com.xxx" /> 打印com.xxx包下面的日志

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末旋圆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子麸恍,更是在濱河造成了極大的恐慌灵巧,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹沪,死亡現(xiàn)場離奇詭異孩等,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)采够,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門肄方,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蹬癌,你說我怎么就攤上這事权她。” “怎么了逝薪?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵隅要,是天一觀的道長。 經(jīng)常有香客問我董济,道長步清,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮廓啊,結(jié)果婚禮上欢搜,老公的妹妹穿的比我還像新娘。我一直安慰自己谴轮,他們只是感情好炒瘟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著第步,像睡著了一般疮装。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粘都,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天廓推,我揣著相機(jī)與錄音,去河邊找鬼翩隧。 笑死樊展,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸽心。 我是一名探鬼主播滚局,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼居暖,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼顽频!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起太闺,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤糯景,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后省骂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蟀淮,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年钞澳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怠惶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡轧粟,死狀恐怖策治,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兰吟,我是刑警寧澤通惫,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站混蔼,受9級(jí)特大地震影響履腋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一遵湖、第九天 我趴在偏房一處隱蔽的房頂上張望悔政。 院中可真熱鬧,春花似錦奄侠、人聲如沸卓箫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烹卒。三九已至,卻和暖如春弯洗,著一層夾襖步出監(jiān)牢的瞬間旅急,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工牡整, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藐吮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓逃贝,卻偏偏與公主長得像谣辞,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沐扳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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