spring mvc logback
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?
? ? ? 程序運(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?
? ??? ?二、日志級(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?
上面的設(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?
? ? 然后在配置文件中分別指定不同的輸出文件(debugLogger使用默認(rèn)的配置):
?
?
[html]?view plaincopyprint?
?這里通過(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?
這一行就將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)題。
- 上一篇: 互联网协议入门(一)
- 下一篇: ros使用QT插件开发