中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

廈門大型企業(yè)網(wǎng)站開發(fā)公司高級seo招聘

廈門大型企業(yè)網(wǎng)站開發(fā)公司,高級seo招聘,局網(wǎng)站建設(shè)再上新臺階,wordpress ssmaylogback-spring.xml的配置項 共有一個父標簽、兩種屬性、三個節(jié)點: 一個父標簽&#xff1a;configuration 兩種屬性&#xff1a;contextName和property 三個節(jié)點&#xff1a;appender、root、logger 日志級別 日志級別從低到高分為TRACE < DEBUG < INFO < WARN &…

logback-spring.xml的配置項

共有一個父標簽、兩種屬性、三個節(jié)點:

? 一個父標簽:configuration
? 兩種屬性:contextName和property
? 三個節(jié)點:appender、root、logger

日志級別

?日志級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設(shè)置為WARN,則低于WARN的信息都不會輸出

一、一個父標簽

<configuration ?scan="true" scanPeriod="10 seconds">
</configuration>
?

  • scan

當此屬性設(shè)置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認值為true

  • scanPeriod

設(shè)置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。

  • debug

當此屬性設(shè)置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運行狀態(tài)。默認值為false。
?

二、兩種屬性 contextName和property

  • contextName

每個logger都關(guān)聯(lián)到logger上下文,默認上下文名稱為“default”。但可以使用設(shè)置成其他名字,用于區(qū)分不同應(yīng)用程序的記錄。一旦設(shè)置,不能修改。
如果同時存在logback.xml和logback-spring.xml,或者同時存在logback.xml和自定義的配置文件,則會先加載logback.xml,再根據(jù)application配置加載指定配置文件,或加載logback-spring,xml。如果這兩個配置文件的contextName不同,就會報錯:

# logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration ?scan="true" scanPeriod="60 seconds" debug="false">
? ? <contextName>logback</contextName>
</configuration>

# logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration ?scan="true" scanPeriod="60 seconds" debug="false">
? ? <contextName>logback</contextName>
</configuration>

# application.properties
logging.config=classpath:logback-spring.xml

ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rename context [logback] as [logback_demo] java.lang.IllegalStateException: Context has been already given a name

  • property

用來定義變量值的標簽, 有兩個屬性,name和value;其中name的值是變量的名稱,value的值時變量定義的值。通過定義的值會被插入到logger上下文中。定義變量后,可以使“${}”來使用變量。
例如使用定義上下文名稱,然后在設(shè)置logger上下文時使用。

<configuration scan="true" scanPeriod="60 seconds" debug="false"> ?
? ? ? <property name="APP_Name" value="myAppName" /> ??
? ? ? <contextName>${APP_Name}</contextName> ?
</configuration>

三、三個節(jié)點 appender、root、logger

  • append節(jié)點

appender的意思是追加器,在這里可以理解為一個日志的渲染器(或者說格式化日志輸出)。比如渲染console日志為某種格式,渲染文件日志為另一種格式。
appender中有name和class兩個屬性,有rollingPolicy和encoder兩個子節(jié)點。
name表示該渲染器的名字,class表示使用的輸出策略,常見的有控制臺輸出策略和文件輸出策略。

控制臺輸出appender

<property name="log.path" value="./fmsdconflog/nmys" /><!--輸出到控制臺 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!--此日志appender是為開發(fā)使用,只配置最底級別,控制臺輸出的日志級別是大于或等于此級別的日志信息 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>info</level></filter><encoder><Pattern>%-5p [%d][%mdc{mdc_accNo}] %C:%L - %m %n</Pattern><!-- 設(shè)置字符集 --><charset>UTF-8</charset></encoder></appender>

  1. <contextName>標簽用于定義日志框架的名稱,這里使用的是logback。
  2. <property>標簽用于定義變量名和變量值,可以在后續(xù)的日志配置中使用${}來引用定義的變量。在本例中,定義了變量log.path的值為./fmsdconflog/nmys,表示日志文件的存儲路徑。
  3. <appender>標簽用于定義日志輸出的目標,可以是控制臺、文件、數(shù)據(jù)庫等。在本例中,定義了一個名為CONSOLE的appender,用于將日志輸出到控制臺。
  4. class屬性指定了appender的實現(xiàn)類,這里使用的是ch.qos.logback.core.ConsoleAppender,表示將日志輸出到控制臺。
  5. <filter>標簽用于過濾日志,只有符合條件的日志才會被輸出。在本例中,使用了ThresholdFilter實現(xiàn)類,表示只輸出大于或等于info級別的日志信息。
  6. <level>標簽表示日志級別,這里設(shè)置為info級別。
  7. <encoder>標簽用于設(shè)置日志格式,定義了輸出日志時的具體格式,可以包含時間、線程、日志級別、類名、方法名、日志信息等。在本例中,使用了Pattern模式來定義日志輸出格式,其中%-5p表示日志級別,%d表示時間,%mdc{mdc_accNo}表示MDC中名稱為mdc_accNo的變量,%C表示輸出日志的線程的類名,%L表示輸出日志的線程的方法名,%m表示日志信息,%n表示換行符。
  8. <charset>標簽用于設(shè)置字符集,這里設(shè)置為UTF-8,表示日志信息以UTF-8的編碼方式輸出。

文件輸入appender

文件輸出主要包括配置:以指定格式將日志輸出到指定文件夾下的文件中,可以配置該文件的名稱、最大大小、保存時間等。

   <!--輸出到文件--><!-- 時間滾動輸出 level為 DEBUG 日志 --><appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><!--先將今天的日志保存在這個文件中--><file>${log.path}/log_debug.log</file><!--日志文件輸出格式   %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n%d{HH: mm:ss.SSS}——日志輸出時間%thread——輸出日志的進程名字,這在Web應(yīng)用以及異步任務(wù)處理中很有用%-5level——日志級別,并且使用5個字符靠左對齊%logger{36}——日志輸出者的名字%msg——日志消息%n——平臺的換行符--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 設(shè)置字符集 --></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- rollover daily --><!--如果第二天輸出日志,會將當天的日志記錄在<file>${log.path}/log_debug.log</file>,然后將昨天的日志歸檔到下面的文件中--><!--以分鐘切分  %d{yyyy-MM-dd_HH-mm}--><fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern><!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB --><!--單個日志文件最大100M,到了這個值,就會再創(chuàng)建一個日志文件,日志文件的名字最后+1--><maxFileSize>100MB</maxFileSize><!--日志文件保留天數(shù)--><maxHistory>30</maxHistory><!--所有的日志文件最大20G,超過就會刪除舊的日志--><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!-- 此日志文件只記錄debug級別的 onMatch和onMismatch都有三個屬性值,分別為Accept、DENY和NEUTRALonMatch="ACCEPT" 表示匹配該級別及以上onMatch="DENY" 表示不匹配該級別及以上onMatch="NEUTRAL" 表示該級別及以上的,由下一個filter處理,如果當前是最后一個,則表        示匹配該級別及以上onMismatch="ACCEPT" 表示匹配該級別以下onMismatch="NEUTRAL" 表示該級別及以下的,由下一個filter處理,如果當前是最后一個,則不匹配該級別以下的onMismatch="DENY" 表示不匹配該級別以下的--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>debug</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender>

<appender name="ERROR_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><file>${log.path}/log_error.log</file><!--日志文件輸出格式 --><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern><charset>UTF-8</charset> <!-- 設(shè)置字符集 --></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志歸檔 --><fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><!--日志文件保留天數(shù) --><maxHistory>15</maxHistory></rollingPolicy><!-- 此日志文件只記錄debug級別的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender>

  1. <appender>標簽表示日志輸出目標,這里定義了一個名為ERROR_FILE的appender。
  2. class屬性指定了appender的實現(xiàn)類,這里使用的是ch.qos.logback.core.rolling.RollingFileAppender,表示將日志輸出到文件。
  3. <file>標簽指定了正在記錄的日志文件的路徑及文件名,${log.path}/log_error.log表示日志文件存儲在${log.path}變量定義的路徑下,文件名為log_error.log。
  4. <encoder>標簽用于設(shè)置輸出日志的格式,與前面的例子類似,但是添加了時間格式化。
  5. <rollingPolicy>標簽用于設(shè)置日志滾動策略,按日期或按大小記錄日志。在本例中使用的是按日期記錄的策略TimeBasedRollingPolicy。
  6. <fileNamePattern>標簽指定了日志歸檔的文件名格式,${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log表示日志文件存儲在${log.path}/error路徑下,文件名格式為log-error-日期.序號.log
  7. <timeBasedFileNamingAndTriggeringPolicy>標簽用于設(shè)置日志文件滾動觸發(fā)策略,這里使用的是SizeAndTimeBasedFNATP,表示按時間和文件大小來觸發(fā)滾動。
  8. <maxFileSize>標簽設(shè)置單個日志文件的最大大小,這里設(shè)置為100MB。
  9. <maxHistory>標簽設(shè)置保留歷史日志文件的天數(shù),這里設(shè)置為15天。
  10. <filter>標簽用于過濾日志,只有符合條件的日志才會被輸出。在本例中,使用了LevelFilter實現(xiàn)類,表示只輸出error級別的日志信息。
  11. <level>標簽表示日志級別,這里設(shè)置為error級別。
  12. <onMatch><onMismatch>標簽用于匹配過濾條件時的行為,ACCEPT表示接受,即輸出符合條件的日志信息,DENY表示拒絕,即不輸出符合條件的日志信息。

root

root節(jié)點實際上是配置啟動哪種appender,可以添加多個appender

<!--root配置必須在appender下邊-->
<!--root節(jié)點是對所有appender的管理,添加哪個appender就會打印哪個appender的日志-->
<!--root節(jié)點的level是總的日志級別控制,如果appender的日志級別設(shè)定比root的高,會按照appender的日志級別打印日志,-->
<!--如果appender的日志級別比root的低,會按照root設(shè)定的日志級別進行打印日志-->
<!--也就是說root設(shè)定的日志級別是最低限制,如果root設(shè)定級別為最高ERROR,那么所有appender只能打印最高級別的日志-->
<root level="DEBUG">
? <appender-ref ref="CONSOLE" />
? <appender-ref ref="DEBUG_FILE" />
? <appender-ref ref="INFO_FILE" />
? <appender-ref ref="WARN_FILE" />
? <appender-ref ref="ERROR_FILE" />
</root>

logger和root的關(guān)系

  • root和logger是父子的關(guān)系

logger的appender根據(jù)參數(shù)additivity決定是否要疊加root的appender,logger的級別是其自身定義的級別,和root的級別沒什么關(guān)系。

  • logger對單個包或類添加配置,相當于局部配置,root相當于全局配置

如果logger里面配置了additivity=“false”,就會覆蓋root的,只打印一遍;但是additivity=“true”,就會向上層再次傳遞,不會覆蓋,而是打印兩遍!

舉例說明:
測試方法:

package com.pikaiqu.logbackdemo;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class LogbackdemoApplicationTests {
?? ?private static Logger log = LoggerFactory.getLogger(LogbackdemoApplicationTests.class);
?? ?@Test?
?? ?void logTest() {
?? ??? ?log.trace("======trace");
?? ??? ?log.debug("======debug");
?? ??? ?log.info("======info");
?? ??? ?log.warn("======warn");
?? ??? ?log.error("======error");
?? ?}
}
?

只配置root

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">
? ? <contextName>logback_demo</contextName>
? ? <property name="pattern-color" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>

? ? <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
? ? ? ? <!-- encoder 默認配置為PatternLayoutEncoder -->
? ? ? ? <encoder>
? ? ? ? ? ? <pattern>${pattern-color}}</pattern>
? ? ? ? </encoder>
? ? </appender>

? ? <root level="INFO">
? ? ? ? <appender-ref ref="STDOUT" />
? ? </root>

</configuration>

=================================輸出結(jié)果============================================
2022-04-26 15:37:48.441 [main] INFO ?c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======info?
2022-04-26 15:37:48.441 [main] WARN ?c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======warn?
2022-04-26 15:37:48.441 [main] ERROR c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======error
?

當執(zhí)行測試方法時,root將級別為“INFO”及大于“INFO”的日志信息交給已經(jīng)配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺;

  1. 配置root和logger,但logger不指定級別,不指定appender(指logger沒有指定appender)

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">
? ? <contextName>logback_demo</contextName>
? ? <property name="pattern-color" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>

? ? <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
? ? ? ? <!-- encoder 默認配置為PatternLayoutEncoder -->
? ? ? ? <encoder>
? ? ? ? ? ? <pattern>${pattern-color}}</pattern>
? ? ? ? </encoder>
? ? </appender>

? ? <logger name="com.pikaiqu.logbackdemo" ></logger>

? ? <root level="INFO">
? ? ? ? <appender-ref ref="STDOUT" />
? ? </root>

</configuration>

=================================輸出結(jié)果============================================
2022-04-26 15:39:09.351 [main] INFO ?c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======info?
2022-04-26 15:39:09.351 [main] WARN ?c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======warn?
2022-04-26 15:39:09.351 [main] ERROR c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======error?
?

將控制com.pikaiqu.logbackdemo包下的所有類的日志的打印,但是并沒用設(shè)置打印級別,所以繼承他的上級的日志級別“INFO”;
沒有設(shè)置addtivity,默認為true,將此loger的打印信息向上級(root)傳遞;
沒有設(shè)置appender,此loger本身不打印任何信息。
將root的打印級別設(shè)置為“INFO”,指定了名字為“STDOUT”的appender。

當執(zhí)行測試方法時,因為LogbackDemo 在包com.pikaiqu.logbackdemo中,所以首先執(zhí)行,將級別為“INFO”及大于“INFO”的日志信息傳遞給root,本身并不打印;
root接到下級(即)傳遞的信息,交給已經(jīng)配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺;

配置root和多個logger,指定級別,指定appender

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false"><contextName>logback_demo</contextName><property name="pattern-color" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- encoder 默認配置為PatternLayoutEncoder --><encoder><pattern>${pattern-color}}</pattern></encoder></appender><logger name="com.pikaiqu.logbackdemo" ></logger><logger name="com.pikaiqu.logbackdemo.LogbackdemoApplicationTests" level="INFO" additivity="false"><appender-ref ref="STDOUT"/></logger><root level="INFO"><appender-ref ref="STDOUT" /></root></configuration>=================================輸出結(jié)果============================================
2022-04-26 15:41:08.022 [main] INFO  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======info 
2022-04-26 15:41:08.023 [main] WARN  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======warn 
2022-04-26 15:41:08.023 [main] ERROR c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======error 

將控制com.pikaiqu.logbackdemo包下的所有類的日志的打印,但是并沒用設(shè)置打印級別,所以繼承他的上級的日志級別“INFO”;
沒有設(shè)置addtivity,默認為true,將此loger的打印信息向上級傳遞;
沒有設(shè)置appender,此loger本身不打印任何信息。

控制com.pikaiqu.logbackdemo.LogbackdemoApplicationTests類的日志打印,打印級別為“INFO”;
additivity屬性為false,表示此loger的打印信息不再向上級(即)傳遞,
使用指定了名字為“STDOUT”的appender。

將root的打印級別設(shè)置為“INFO”,指定了名字為“STDOUT”的appender。

當執(zhí)行測試方法時,先執(zhí)行,將級別為“INFO”及大于“INFO”的日志信息交給此loger指定的名為“STDOUT”的appender處理,在控制臺中打出日志,不再向該loger的上級 傳遞打印信息;

未接到任何打印信息,當然也不會給它的上級root傳遞任何打印信息;

如果設(shè)置,則結(jié)果如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false"><contextName>logback_demo</contextName><property name="pattern-color" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- encoder 默認配置為PatternLayoutEncoder --><encoder><pattern>${pattern-color}}</pattern></encoder></appender><logger name="com.pikaiqu.logbackdemo" ></logger><logger name="com.pikaiqu.logbackdemo.LogbackdemoApplicationTests" level="INFO" additivity="true"><appender-ref ref="STDOUT"/></logger><root level="info"><appender-ref ref="STDOUT" /></root></configuration>=================================輸出結(jié)果============================================
2022-04-26 15:41:08.022 [main] INFO  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======info 
2022-04-26 15:41:08.022 [main] INFO  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======info 
2022-04-26 15:41:08.023 [main] WARN  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======warn 
2022-04-26 15:41:08.023 [main] WARN  c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======warn 
2022-04-26 15:41:08.023 [main] ERROR c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======error 
2022-04-26 15:41:08.023 [main] ERROR c.pikaiqu.logbackdemo.LogbackdemoApplicationTests - ======error 

將控制com.pikaiqu.logbackdemo包下的所有類的日志的打印,但是并沒用設(shè)置打印級別,所以繼承他的上級的日志級別“INFO”;
沒有設(shè)置addtivity,默認為true,將此loger的打印信息向上級傳遞;
沒有設(shè)置appender,此loger本身不打印任何信息。

控制com.pikaiqu.logbackdemo.LogbackdemoApplicationTests類的日志打印,打印級別為“INFO”;
additivity屬性為false,表示此loger的打印信息會向上級(即)傳遞,
使用指定了名字為“STDOUT”的appender。

將root的打印級別設(shè)置為“INFO”,指定了名字為“STDOUT”的appender。

當執(zhí)行測試方法時,先執(zhí)行,將級別為“INFO”及大于“INFO”的日志信息交給此loger指定的名為“STDOUT”的appender處理,在控制臺中打出日志。
然后向該loger的上級 傳遞打印信息;由于沒有設(shè)置appender,此loger本身不打印任何信息,而且沒有設(shè)置addtivity,則默認為true,因此將此loger的打印信息向上級(root)傳遞。
root接到下級(即)傳遞的信息,交給已經(jīng)配置好的名為“STDOUT”的appender處理,“STDOUT”appender將信息打印到控制臺。

環(huán)境配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration  scan="true" scanPeriod="10 seconds"><!--配置多環(huán)境日志輸出  可以在application.properties中配置選擇哪個profiles : spring.profiles.active=dev--><!--生產(chǎn)環(huán)境:輸出到文件--><!--<springProfile name="pro"><root level="info"><appender-ref ref="DEBUG_FILE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="ERROR_FILE" /><appender-ref ref="WARN_FILE" /></root></springProfile>--><!--開發(fā)環(huán)境:打印控制臺--><!--<springProfile name="dev"><root level="debug"><appender-ref ref="CONSOLE" /></root></springProfile>--></configuration>

完整的logback-spring.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設(shè)置為WARN,則低于WARN的信息都不會輸出 -->
<!-- scan:當此屬性設(shè)置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認值為true -->
<!-- scanPeriod:設(shè)置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。 -->
<!-- debug:當此屬性設(shè)置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運行狀態(tài)。默認值為false。 -->
<configuration  scan="true" scanPeriod="10 seconds"><contextName>logback</contextName><!-- name的值是變量的名稱,value的值時變量定義的值。通過定義的值會被插入到logger上下文中。定義變量后,可以使“${}”來使用變量--><property name="log.path" value="F:/java基礎(chǔ)學(xué)習(xí)/復(fù)習(xí)testcode/logs" /><property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/><!--輸出到控制臺--><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--此日志appender是為開發(fā)使用,只配置最底級別,控制臺輸出的日志級別是大于或等于此級別的日志信息--><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>debug</level></filter><encoder><Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!-- 設(shè)置字符集 --><charset>UTF-8</charset></encoder></appender><!--輸出到文件--><!-- 時間滾動輸出 level為 DEBUG 日志 --><appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><!--先將今天的日志保存在這個文件中--><file>${log.path}/log_debug.log</file><!--日志文件輸出格式   %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n%d{HH: mm:ss.SSS}——日志輸出時間%thread——輸出日志的進程名字,這在Web應(yīng)用以及異步任務(wù)處理中很有用%-5level——日志級別,并且使用5個字符靠左對齊%logger{36}——日志輸出者的名字%msg——日志消息%n——平臺的換行符--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 設(shè)置字符集 --></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- rollover daily --><!--如果第二天輸出日志,會將當天的日志記錄在<file>${log.path}/log_debug.log</file>,然后將昨天的日志歸檔到下面的文件中--><!--以分鐘切分  %d{yyyy-MM-dd_HH-mm}--><fileNamePattern>${log.path}/debug/log-debug-%d{yyyy-MM-dd_HH-mm}.%i.log</fileNamePattern><!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB --><!--單個日志文件最大100M,到了這個值,就會再創(chuàng)建一個日志文件,日志文件的名字最后+1--><maxFileSize>100MB</maxFileSize><!--日志文件保留天數(shù)--><maxHistory>30</maxHistory><!--所有的日志文件最大20G,超過就會刪除舊的日志--><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!--此日志文件只記錄debug級別的onMatch和onMismatch都有三個屬性值,分別為Accept、DENY和NEUTRALonMatch="ACCEPT" 表示匹配該級別及以上onMatch="DENY" 表示不匹配該級別及以上onMatch="NEUTRAL" 表示該級別及以上的,由下一個filter處理,如果當前是最后一個,則表示匹配該級別及以上onMismatch="ACCEPT" 表示匹配該級別以下onMismatch="NEUTRAL" 表示該級別及以下的,由下一個filter處理,如果當前是最后一個,則不匹配該級別以下的onMismatch="DENY" 表示不匹配該級別以下的--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>debug</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 時間滾動輸出 level為 INFO 日志 --><appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><file>${log.path}/log_info.log</file><!--日志文件輸出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- rollover daily --><!--如果第二天輸出日志,會將當天的日志記錄在<file>${log.path}/log_debug.log</file>,然后將昨天的日志歸檔到下面的文件中--><!--以分鐘切分  %d{yyyy-MM-dd_HH-mm}--><fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB --><!--單個日志文件最大100M,到了這個值,就會再創(chuàng)建一個日志文件,日志文件的名字最后+1--><maxFileSize>100MB</maxFileSize><!--日志文件保留天數(shù)--><maxHistory>30</maxHistory><!--所有的日志文件最大20G,超過就會刪除舊的日志--><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!--SizeAndTimeBasedRollingPolicy配置更靈活,所以改用SizeAndTimeBasedRollingPolicy--><!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">&lt;!&ndash; 每天日志歸檔路徑以及格式 &ndash;&gt;<fileNamePattern>${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy>&lt;!&ndash;日志文件保留天數(shù)&ndash;&gt;<maxHistory>15</maxHistory></rollingPolicy>--><!-- 此日志文件只記錄info級別的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 時間滾動輸出 level為 WARN 日志 --><appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><file>${log.path}/log_warn.log</file><!--日志文件輸出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 此處設(shè)置字符集 --></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- rollover daily --><!--如果第二天輸出日志,會將當天的日志記錄在<file>${log.path}/log_debug.log</file>,然后將昨天的日志歸檔到下面的文件中--><!--以分鐘切分  %d{yyyy-MM-dd_HH-mm}--><fileNamePattern>${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB --><!--單個日志文件最大100M,到了這個值,就會再創(chuàng)建一個日志文件,日志文件的名字最后+1--><maxFileSize>100MB</maxFileSize><!--日志文件保留天數(shù)--><maxHistory>30</maxHistory><!--所有的日志文件最大20G,超過就會刪除舊的日志--><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!-- 此日志文件只記錄warn級別的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 時間滾動輸出 level為 ERROR 日志 --><appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在記錄的日志文件的路徑及文件名 --><file>${log.path}/log_error.log</file><!--日志文件輸出格式--><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset> <!-- 此處設(shè)置字符集 --></encoder><!-- 日志記錄器的滾動策略,按日期,按大小記錄 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- rollover daily --><!--如果第二天輸出日志,會將當天的日志記錄在<file>${log.path}/log_debug.log</file>,然后將昨天的日志歸檔到下面的文件中--><!--以分鐘切分  %d{yyyy-MM-dd_HH-mm}--><fileNamePattern>${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB --><!--單個日志文件最大100M,到了這個值,就會再創(chuàng)建一個日志文件,日志文件的名字最后+1--><maxFileSize>100MB</maxFileSize><!--日志文件保留天數(shù)--><maxHistory>30</maxHistory><!--所有的日志文件最大20G,超過就會刪除舊的日志--><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!-- 此日志文件只記錄ERROR級別的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!--root配置必須在appender下邊--><!--root節(jié)點是對所有appender的管理,添加哪個appender就會打印哪個appender的日志--><!--root節(jié)點的level是總的日志級別控制,如果appender的日志級別設(shè)定比root的高,會按照appender的日志級別打印日志,--><!--如果appender的日志級別比root的低,會按照root設(shè)定的日志級別進行打印日志--><!--也就是說root設(shè)定的日志級別是最低限制,如果root設(shè)定級別為最高ERROR,那么所有appender只能打印最高級別的日志--><root level="INFO"><appender-ref ref="STDOUT" /><appender-ref ref="DEBUG_FILE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="WARN_FILE" /><appender-ref ref="ERROR_FILE" /></root><!--name:用來指定受此loger約束的某一個包或者具體的某一個類。--><!--addtivity:是否向上級loger傳遞打印信息。默認是true。--><logger name="com.pikaiqu.logbackdemo.LogbackdemoApplicationTests" level="debug" additivity="false"><appender-ref ref="STDOUT" /><appender-ref ref="INFO_FILE" /></logger><!--配置多環(huán)境日志輸出  可以在application.properties中配置選擇哪個profiles : spring.profiles.active=dev--><!--生產(chǎn)環(huán)境:輸出到文件--><!--<springProfile name="pro"><root level="info"><appender-ref ref="DEBUG_FILE" /><appender-ref ref="INFO_FILE" /><appender-ref ref="ERROR_FILE" /><appender-ref ref="WARN_FILE" /></root></springProfile>--><!--開發(fā)環(huán)境:打印控制臺--><!--<springProfile name="dev"><root level="debug"><appender-ref ref="STDOUT" /></root></springProfile>--></configuration>

http://www.risenshineclean.com/news/30464.html

相關(guān)文章:

  • 學(xué)校教育網(wǎng)站模板惡意點擊推廣神器
  • 有沒有好網(wǎng)站推薦提升網(wǎng)頁優(yōu)化排名
  • ppt做的好的網(wǎng)站有哪些樂事薯片軟文推廣
  • nb-iot網(wǎng)站開發(fā)百度付費推廣有幾種方式
  • 合肥晨曦網(wǎng)站建設(shè)百度競價關(guān)鍵詞怎么優(yōu)化
  • 東莞市國外網(wǎng)站建設(shè)平臺谷歌網(wǎng)頁版
  • 網(wǎng)站建設(shè)產(chǎn)業(yè)pest分析windows優(yōu)化軟件排行
  • 廣州企業(yè)網(wǎng)站建設(shè)推薦域名服務(wù)器ip地址查詢
  • 網(wǎng)站建設(shè)需要什么人才網(wǎng)絡(luò)營銷與直播電商專業(yè)介紹
  • 哪個做簡歷的網(wǎng)站比較好石家莊最新新聞事件
  • 網(wǎng)站做整站做優(yōu)化seo站點是什么意思
  • 網(wǎng)站開發(fā)報告步驟分析企業(yè)軟文
  • 淘寶seo搜索優(yōu)化seo關(guān)鍵字怎么優(yōu)化
  • 做印章的網(wǎng)站網(wǎng)站推廣服務(wù)
  • 網(wǎng)站ftp查詢國際網(wǎng)絡(luò)銷售平臺有哪些
  • 西安做網(wǎng)站建設(shè)的qq推廣工具
  • 醫(yī)藥網(wǎng)站建設(shè)蟻坊軟件輿情監(jiān)測系統(tǒng)
  • 山西做網(wǎng)站運營的公司網(wǎng)店運營培訓(xùn)哪里好
  • 視差效果網(wǎng)站網(wǎng)絡(luò)推廣是什么職業(yè)
  • 公司請做網(wǎng)站百度 競價排名
  • 怎么找人做動漫視頻網(wǎng)站seo關(guān)鍵詞排名優(yōu)化的方法
  • 找人做網(wǎng)站去哪里找黃岡網(wǎng)站推廣廠家
  • 商城網(wǎng)站建設(shè)運營合同天津優(yōu)化公司哪家好
  • 門戶網(wǎng)站建設(shè)ppt方案seo公司費用
  • 工作室怎么網(wǎng)站備案外貿(mào)網(wǎng)站推廣平臺有哪些
  • 鄭州高新區(qū)做網(wǎng)站開發(fā)的公司網(wǎng)站seo推廣排名
  • 電子商務(wù)網(wǎng)站建設(shè)總結(jié)免費網(wǎng)站在線觀看人數(shù)在哪直播
  • 網(wǎng)站地圖對seo的影響品牌營銷策劃與管理
  • 做pc端網(wǎng)站平臺今日頭條熱點新聞
  • 建筑網(wǎng)片的用途seo優(yōu)化工具