開發(fā)環(huán)境及工具--Win10,IDE-idea,maven,jdk8
以上就是這次所使用的工具,說明---日志配置分為線上(就是我們說的服務器環(huán)境)還有線下配置(其實線下不用過多配置纷纫,正常輸出到控制臺就好)接下來我就一起結束了枕扫,請大家靈活運用
一,`學習logback使用辱魁,大概分為以下幾步
引入maven依賴
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
`
本人親測烟瞧,不會有版本沖突
二诗鸭,比如ClassNotFoundException這些奇怪錯誤
接下來就是配置logback.xml了,我會大概介紹一下每個節(jié)點使用含義
<configuration scan="true" scanPeriod="60 seconds" debug="false"> <property name="CONTEXT_NAME" value="webdemo"/> <contextName>${CONTEXT_NAME}</contextName> <property name="LOG_PATH" value="var/log/webdemo"/>
scan:
當此屬性設置為true時参滴,配置文件如果發(fā)生改變强岸,將會被重新加載,默認值為true砾赔。
scanPeriod:
設置監(jiān)測配置文件是否有修改的時間間隔蝌箍,如果沒有給出時間單位,默認單位是毫秒暴心。當scan為true時妓盲,此屬性生效。默認的時間間隔為1分鐘专普。
debug:
當此屬性設置為true時悯衬,將打印出logback內部日志信息,實時查看logback運行狀態(tài)檀夹。默認值為false筋粗。
property : 定義一個名字,后面用${property -name}來取值
` <logger name="com.xiao.controller" level="INFO" additivity="true">
<appender-ref ref="file"/>
</logger>
<logger>
用來設置某一個包或者具體的某一個類的日志打印級別炸渡、以及指定<appender>娜亿。<logger>僅有一個name屬性,一個可選的level和一個可選的addtivity屬性偶摔。
name:
用來指定受此loger約束的某一個包或者具體的某一個類暇唾。
level:
用來設置打印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF辰斋,還有一個特俗值INHERITED或者同義詞NULL策州,代表強制執(zhí)行上級的級別。
如果未設置此屬性宫仗,那么當前l(fā)oger將會繼承上級的級別够挂。
addtivity:
是否向上級loger傳遞打印信息。默認是true藕夫。
<logger>可以包含零個或多個<appender-ref>元素孽糖,標識這個appender將會添加到這個loger。
<root level="INFO"> <appender-ref ref="STDOUT" /> </root>
<root>
也是<logger>元素毅贮,但是它是根logger办悟。只有一個level屬性,應為已經被命名為"root".
level:
用來設置打印級別滩褥,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF病蛉,不能設置為INHERITED或者同義詞NULL。
默認是DEBUG。
<root>可以包含零個或多個<appender-ref>元素铺然,標識這個appender將會添加到這個loger俗孝。說明:這個root就是整個日志的父級別,在默認情況下所有日志都會輸出父級別類似于繼承的關系
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern> %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}-%msg%n </pattern> </encoder> </appender>
<appender>:
<appender>是<configuration>的子節(jié)點魄健,是負責寫日志的組件赋铝。
<appender>有兩個必要屬性name和class。name指定appender名稱沽瘦,class指定appender的全限定名革骨。
ConsoleAppender:把日志添加到控制臺,有以下子節(jié)點:
這個基本輸出到控制臺的日志就配置完了
接下來介紹線上配置其垄,把日志配置到某一個文件里面
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <file>${LOG_PATH}/xiao-info-30de.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_PATH}/xiao-info-30de.log-%d{yyyy-MM-dd}.%i</fileNamePattern> <MaxHistory>10</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>512MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n </pattern> </layout> </appender>
<file>${LOG_PATH}/xiao-info-30de.log</file>----文件名字
MaxHistory---日志文件滾動存儲多少天
MaxFileSize-每個文件大小
打印日志實例:
String s = "www";
String ss= "2222";
log.info("======trace{}---{}",s,ss);
用逗號隔開苛蒲,前面用{}占位符。