<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                當 SpringBoot 提供的默認日志配置不滿足我們的要求時,那么我們就需要自己來編寫日志配置了。 <br/> :-: **不同的slf4j日志實現配置文件命名規范** - [官方文檔](https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-logging) | Logging System | Customization | | :-- | :-- | | Logback| `logback-spring.xml`,`logback-spring.groovy`,`logback.xml`or `logback.groovy`| | Log4j2| `log4j2-spring.xml`or`log4j2.xml`| | JDK (Java Util Logging)| `logging.properties`| SpringBoot 推薦我們使用`logback-spring.xml`,好處是可以在該配置文件中使用標簽`<springProfile/>`來決定日志的那些片段生效,其他的 logback 配置文件可沒有這個功能。 <br/> *`resources/logback-spring.xml`* 模板。轉載自:[https://blog.csdn.net/IT\_zhang81/article/details/99293472](https://blog.csdn.net/IT_zhang81/article/details/99293472)。 ```xml <?xml version="1.0" encoding="UTF-8"?> <!-- 日志級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設置為WARN,則低于WARN的信息都不會輸出 --> <!-- scan:當此屬性設置為true時,配置文件如果發生改變,將會被重新加載,默認值為true --> <!-- scanPeriod:設置監測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。 --> <!-- debug:當此屬性設置為true時,將打印出logback內部日志信息,實時查看logback運行狀態。默認值為false。 --> <configuration scan="true" scanPeriod="10 seconds"> <!--<include resource="org/springframework/boot/logging/logback/base.xml" />--> <contextName>logback</contextName> <!-- name的值是變量的名稱,value的值時變量定義的值。通過定義的值會被插入到logger上下文中。定義變量后,可以使“${}”來使用變量。 打包后在項目的更目錄生成日志文件--> <property name="log.path" value="${catalina.base}/webapps/ZoomSealEnt/logs" /> <!-- 彩色日志 --> <!-- 彩色日志依賴的渲染類 --> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <!-- 彩色日志格式 [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n --> <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> <!--輸出到控制臺--> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <!--此日志appender是為開發使用,只配置最底級別,控制臺輸出的日志級別是大于或等于此級別的日志信息--> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <encoder> <Pattern>${CONSOLE_LOG_PATTERN}</Pattern> <!-- 設置字符集 --> <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應用以及異步任務處理中很有用 %-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> <!-- 設置字符集 --> </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,到了這個值,就會再創建一個日志文件,日志文件的名字最后+1--> <maxFileSize>100MB</maxFileSize> <!--日志文件保留天數--> <maxHistory>30</maxHistory> <!--所有的日志文件最大20G,超過就會刪除舊的日志--> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <!-- 此日志文件只記錄debug級別的 onMatch和onMismatch都有三個屬性值,分別為Accept、DENY和NEUTRAL onMatch="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,到了這個值,就會再創建一個日志文件,日志文件的名字最后+1--> <maxFileSize>100MB</maxFileSize> <!--日志文件保留天數--> <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;日志文件保留天數&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> <!-- 此處設置字符集 --> </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,到了這個值,就會再創建一個日志文件,日志文件的名字最后+1--> <maxFileSize>100MB</maxFileSize> <!--日志文件保留天數--> <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> <!-- 此處設置字符集 --> </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,到了這個值,就會再創建一個日志文件,日志文件的名字最后+1--> <maxFileSize>100MB</maxFileSize> <!--日志文件保留天數--> <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節點是對所有appender的管理,添加哪個appender就會打印哪個appender的日志--> <!--root節點的level是總的日志級別控制,如果appender的日志級別設定比root的高,會按照appender的日志級別打印日志,--> <!--如果appender的日志級別比root的低,會按照root設定的日志級別進行打印日志--> <!--也就是說root設定的日志級別是最低限制,如果root設定級別為最高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> <!-- name:用來指定受此loger約束的某一個包或者具體的某一個類。 addtivity:是否向上級loger傳遞打印信息。默認是true。 因為mybatis打印的sql日志是debug級別的,如果將所有的debug都打印出來會特別亂, 所以特意指定mybatis的日志為debug,其他的為info --> <logger name="com.zzzy.zlu.mapper" level="debug" additivity="false"> <appender-ref ref="CONSOLE" /> </logger> <!--配置多環境日志輸出 可以在application.properties中配置選擇哪個profiles : spring.profiles.active=dev--> <!--生產環境:輸出到文件--> <!--<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>--> <!--開發環境:打印控制臺--> <!--<springProfile name="dev"> <root level="debug"> <appender-ref ref="CONSOLE" /> </root> </springProfile>--> </configuration> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看