生活随笔
收集整理的這篇文章主要介紹了
spring mvc logback
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
最近才開始在項目中使用logback,有一種相見恨晚的感覺,因為它很輕易的滿足了我的幾個需求:
?
? ? ? ? 1. 配置簡單,易于上手
? ? ? ? 2. 一個日志文件中只能某一個級別的日志
? ? ? ? 3. 一個類中可以指定多個不同的日志,并且生成的每個日志文件中只包含其本身的內容
? ? ? ? 4. 可以關閉或者打開某幾個包的日志,并且可以設置不同的包使用不同的日志級別。
?
? ? ? ?一、易用性
? ? ? ? logback的易用性不用多講,只需要通過下面兩行就可以在console中輸出日志:
?
[java]?view plaincopyprint?
<pre?name="code"?class="html">Logger?debugLogger?=?LoggerFactory.getLogger(MyClass.class);??</pre>logger.info("This?is?a?log");??
? ? ? 程序運行時,logback會查找默認的配置文件logback.xml或者logback-test.xml文件,如果沒有找到它就會使用默認的配置,將日志打印到console中。下面是一個簡單配置文件(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>??
? ??? ?二、日志級別限制
?
? ? ? ?在多數的Log工具中,級別是可以傳遞,例如如果指定了日志輸出級別為DEBUG,那么INFO、ERROR級別的log也會出現在日志文件。這種默認給程序的調試帶來了很多的麻煩。而在logback中可以通過appender中的filter來嚴格限制日志的輸出級別:
?
[html]?view plaincopyprint?
<filter?class="ch.qos.logback.classic.filter.LevelFilter">??????<level>INFO</level>??????<onMatch>ACCEPT</onMatch>??????<onMismatch>DENY</onMismatch>??</filter>??上面的設置中只會在文件中出現級別為INFO的日志內容。
?
?
? ? ?三、同一個類中包含不同的日志
? ? ?有時候一個類中可能要求打印不同的日志信息,例如有的用來調試,有的用來記錄程序運行中的某些參數的變化等等。這時候可以通過下面的語句聲明不同的日志:
?
[java]?view plaincopyprint?
Logger?debugLogger?=?LoggerFactory.getLogger(MyClass.class);??Logger?monitorLogger?=?LoggerFactory.getLogger("monitor");??? ? 然后在配置文件中分別指定不同的輸出文件(debugLogger使用默認的配置):
?
?
[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>???這里通過設置additivity="false"禁止monitor里的內容向上傳遞,否則會同時顯示在默認的日志中。
?
?
? ? ? ? ?四、精確控制日志的應用范圍
? ? ? ? ?在程序調試中,經常出現的情況是:錯誤只在某一個或者幾個類或者包里,所以只需要打開這幾個類或者包里的DEBUG級別的log。在以前的項目,使用Spring和Hibernate時,一旦打開DEBUG級別的log,程序本身的debug信息就會被Spring和Hibernate的大量日志淹沒,大大降低了調試的效率。而logback讓這一切變的簡單起來了:
?
[html]?view plaincopyprint?
<logger?name="org"?level="ERROR"?/>??這一行就將org包下面的所有日志級別設為了ERROR,不會再打擾我們的DEBUG
?
?
轉載于:https://my.oschina.net/u/2458549/blog/850678
總結
以上是生活随笔為你收集整理的spring mvc logback的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。