日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

spring mvc logback

發(fā)布時(shí)間:2025/3/21 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring mvc logback 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

最近才開(kāi)始在項(xiàng)目中使用logback,有一種相見(jiàn)恨晚的感覺(jué),因?yàn)樗茌p易的滿足了我的幾個(gè)需求:

?

? ? ? ? 1. 配置簡(jiǎn)單,易于上手

? ? ? ? 2. 一個(gè)日志文件中只能某一個(gè)級(jí)別的日志

? ? ? ? 3. 一個(gè)類中可以指定多個(gè)不同的日志,并且生成的每個(gè)日志文件中只包含其本身的內(nèi)容

? ? ? ? 4. 可以關(guān)閉或者打開(kāi)某幾個(gè)包的日志,并且可以設(shè)置不同的包使用不同的日志級(jí)別。

?

? ? ? ?一、易用性

? ? ? ? logback的易用性不用多講,只需要通過(guò)下面兩行就可以在console中輸出日志:

?

[java]?view plaincopyprint?

  • <pre?name="code"?class="html">Logger?debugLogger?=?LoggerFactory.getLogger(MyClass.class);??
  • </pre>logger.info("This?is?a?log");??

  • ? ? ? 程序運(yùn)行時(shí),logback會(huì)查找默認(rèn)的配置文件logback.xml或者logback-test.xml文件,如果沒(méi)有找到它就會(huì)使用默認(rèn)的配置,將日志打印到console中。下面是一個(gè)簡(jiǎn)單配置文件(http://logback.qos.ch/manual/configuration.html):

    ?

    [html]?view plaincopyprint?

  • <configuration>??
  • ??
  • ??<appender?name="STDOUT"?class="ch.qos.logback.core.ConsoleAppender">??
  • ????<!--?encoders?are?assigned?the?type??
  • ?????????ch.qos.logback.classic.encoder.PatternLayoutEncoder?by?default?-->??
  • ????<encoder>??
  • ??????<pattern>%d{HH:mm:ss.SSS}?[%thread]?%-5level?%logger{36}?-?%msg%n</pattern>??
  • ????</encoder>??
  • ??</appender>??
  • ??
  • ??<root?level="debug">??
  • ????<appender-ref?ref="STDOUT"?/>??
  • ??</root>??
  • </configuration>??

  • ? ??? ?二、日志級(jí)別限制

    ?

    ? ? ? ?在多數(shù)的Log工具中,級(jí)別是可以傳遞,例如如果指定了日志輸出級(jí)別為DEBUG,那么INFO、ERROR級(jí)別的log也會(huì)出現(xiàn)在日志文件。這種默認(rèn)給程序的調(diào)試帶來(lái)了很多的麻煩。而在logback中可以通過(guò)appender中的filter來(lái)嚴(yán)格限制日志的輸出級(jí)別:

    ?

    [html]?view plaincopyprint?

  • <filter?class="ch.qos.logback.classic.filter.LevelFilter">??
  • ????<level>INFO</level>??
  • ????<onMatch>ACCEPT</onMatch>??
  • ????<onMismatch>DENY</onMismatch>??
  • </filter>??
  • 上面的設(shè)置中只會(huì)在文件中出現(xiàn)級(jí)別為INFO的日志內(nèi)容。

    ?

    ?

    ? ? ?三、同一個(gè)類中包含不同的日志

    ? ? ?有時(shí)候一個(gè)類中可能要求打印不同的日志信息,例如有的用來(lái)調(diào)試,有的用來(lái)記錄程序運(yùn)行中的某些參數(shù)的變化等等。這時(shí)候可以通過(guò)下面的語(yǔ)句聲明不同的日志:

    ?

    [java]?view plaincopyprint?

  • Logger?debugLogger?=?LoggerFactory.getLogger(MyClass.class);??
  • Logger?monitorLogger?=?LoggerFactory.getLogger("monitor");??
  • ? ? 然后在配置文件中分別指定不同的輸出文件(debugLogger使用默認(rèn)的配置):

    ?

    ?

    [html]?view plaincopyprint?

  • ????<appender?name="monitor"?class="ch.qos.logback.core.rolling.RollingFileAppender">??
  • ????????<File>${log.dir}/monitor.log</File>??
  • ????????<encoder>??
  • ????????????<pattern>%d{yyyy-MM-dd?HH:mm:ss.SSS}?:?%m%n</pattern>??
  • ????????</encoder>??
  • ????????<filter?class="ch.qos.logback.classic.filter.ThresholdFilter">??
  • ????????????<level>INFO</level>??
  • ????????</filter>??
  • ????????<rollingPolicy?class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">??
  • ????????????<fileNamePattern>${log.dir}/sensitive.log.%d{yyyy-MM-dd}</fileNamePattern>??
  • ????????</rollingPolicy>??
  • ????</appender>??
  • ????????<logger?name="monitor"?additivity="false"?level="INFO">??
  • <span?style="white-space:pre">??????</span><appender-ref?ref="monitor"?/>??
  • <span?style="white-space:pre">??</span></logger>??
  • ?這里通過(guò)設(shè)置additivity="false"禁止monitor里的內(nèi)容向上傳遞,否則會(huì)同時(shí)顯示在默認(rèn)的日志中。

    ?

    ?

    ? ? ? ? ?四、精確控制日志的應(yīng)用范圍

    ? ? ? ? ?在程序調(diào)試中,經(jīng)常出現(xiàn)的情況是:錯(cuò)誤只在某一個(gè)或者幾個(gè)類或者包里,所以只需要打開(kāi)這幾個(gè)類或者包里的DEBUG級(jí)別的log。在以前的項(xiàng)目,使用Spring和Hibernate時(shí),一旦打開(kāi)DEBUG級(jí)別的log,程序本身的debug信息就會(huì)被Spring和Hibernate的大量日志淹沒(méi),大大降低了調(diào)試的效率。而logback讓這一切變的簡(jiǎn)單起來(lái)了:

    ?

    [html]?view plaincopyprint?

  • <logger?name="org"?level="ERROR"?/>??
  • 這一行就將org包下面的所有日志級(jí)別設(shè)為了ERROR,不會(huì)再打擾我們的DEBUG

    ?

    ?

    轉(zhuǎn)載于:https://my.oschina.net/u/2458549/blog/850678

    總結(jié)

    以上是生活随笔為你收集整理的spring mvc logback的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。