日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Spring Boot 日志組件logback實(shí)現(xiàn)日志分級(jí)打印

 印度阿三17 2019-10-10

準(zhǔn)備工作

環(huán)境:

1 windows
2 jdk 8
3 maven 3.0
4 IDEA

構(gòu)建工程

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven./POM/4.0.0" xmlns:xsi="http://www./2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://maven./POM/4.0.0 http://maven./xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5 
 6     <parent>
 7         <groupId>cn.zhangbox</groupId>
 8         <artifactId>spring-boot-study</artifactId>
 9         <version>1.0-SNAPSHOT</version>
10     </parent>
11 
12     <groupId>cn.zhangbox</groupId>
13     <artifactId>spring-boot-log</artifactId>
14     <version>0.0.1-SNAPSHOT</version>
15     <packaging>jar</packaging>
16 
17     <name>spring-boot-logging</name>
18     <description>Demo project for Spring Boot</description>
19 
20     <properties>
21         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
22         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
23         <java.version>1.8</java.version>
24     </properties>
25 
26     <dependencies>
27         <dependency>
28             <groupId>org.springframework.boot</groupId>
29             <artifactId>spring-boot-starter-web</artifactId>
30         </dependency>
31 
32         <dependency>
33             <groupId>org.springframework.boot</groupId>
34             <artifactId>spring-boot-starter-test</artifactId>
35             <scope>test</scope>
36         </dependency>
37     </dependencies>
38 
39     <build>
40         <plugins>
41             <plugin>
42                 <groupId>org.springframework.boot</groupId>
43                 <artifactId>spring-boot-maven-plugin</artifactId>
44             </plugin>
45         </plugins>
46     </build>
47 
48 </project>

修改YML配置

 1 #選擇哪一個(gè)環(huán)境的配置
 2 #這里可以在每個(gè)環(huán)境配置redis,數(shù)據(jù)庫(kù)(mysql),消息(kafka)等相關(guān)的組件的配置
 3 spring:
 4   profiles:
 5     active: dev
 6 
 7 #文檔塊區(qū)分為三個(gè)---
 8 ---
 9 server:
10   port: 8081
11 spring:
12   profiles: dev
13 #日志
14 logging:
15 #日志配置文件位置
16   config: classpath:log/logback.xml
17 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下
18   path: log/spring-boot-log
19 
20 #文檔塊區(qū)分為三個(gè)---
21 ---
22 server:
23   port: 8082
24 spring:
25   profiles: test
26 #日志
27 logging:
28 #日志配置文件位置
29   config: classpath:log/logback.xml
30 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下
31   path: usr/spring-boot/log/spring-boot-log
32 
33 #文檔塊區(qū)分為三個(gè)---
34 ---
35 server:
36   port: 8083
37 spring:
38   profiles: prod
39 #日志
40 logging:
41 #日志配置文件位置
42   config: classpath:log/logback.xml
43 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下
44   path: usr/spring-boot/log/spring-boot-log

創(chuàng)建日志配置文件

在工程resources文件夾下新建文件夾log,并在該文件夾下創(chuàng)建logback.xml文件,加入以下配置:

  1 <!-- Logback configuration. See http://logback./manual/index.html -->
  2         <configuration scan="true" scanPeriod="10 seconds">
  3             <!--繼承spring boot提供的logback配置-->
  4             <!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
  5         
  6             <!--設(shè)置系統(tǒng)日志目錄-->
  7             <property name="APP_DIR" value="spring-boot-log"/>
  8         
  9             <!-- 彩色日志 -->
 10             <!-- 彩色日志依賴的渲染類(lèi) -->
 11             <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
 12             <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
 13             <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
 14             <!-- 彩色日志格式 -->
 15             <property name="CONSOLE_LOG_PATTERN"
 16                       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([.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
 17         
 18             <!-- 控制臺(tái)輸出 -->
 19             <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 20                 <encoder>
 21                     <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
 22                     <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 -->
 23                 </encoder>
 24                 <!--此日志appender是為開(kāi)發(fā)使用,只配置最底級(jí)別,控制臺(tái)輸出的日志級(jí)別是大于或等于此級(jí)別的日志信息-->
 25                 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
 26                     <level>debug</level>
 27                 </filter>
 28             </appender>
 29         
 30             <!-- 時(shí)間滾動(dòng)輸出 level為 DEBUG 日志 -->
 31             <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 32                 <!-- 正在記錄的日志文件的路徑及文件名 -->
 33                 <file>${LOG_PATH}/log_debug.log</file>
 34                 <!--日志文件輸出格式-->
 35                 <encoder>
 36                     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 37                     <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 -->
 38                 </encoder>
 39                 <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 -->
 40                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 41                     <!--
 42                         歸檔的日志文件的路徑,例如今天是2017-04-26日志,當(dāng)前寫(xiě)的日志文件路徑為file節(jié)點(diǎn)指定,可以將此文件與file指定文件路徑設(shè)置為不同路徑,從而將當(dāng)前日志文件或歸檔日志文件置不同的目錄。
 43                         而2017-04-26的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引
 44                     -->
 45                     <fileNamePattern>${LOG_PATH}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 46                     <!--
 47                         除按日志記錄之外,還配置了日志文件不能超過(guò)500M,若超過(guò)500M,日志文件會(huì)以索引0開(kāi)始,
 48                         命名日志文件,例如log-error-2017-04-26.0.log
 49                     -->
 50                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 51                         <maxFileSize>500MB</maxFileSize>
 52                     </timeBasedFileNamingAndTriggeringPolicy>
 53                     <!--日志文件保留天數(shù)-->
 54                     <maxHistory>30</maxHistory>
 55                 </rollingPolicy>
 56                 <!-- 此日志文件只記錄debug級(jí)別的 -->
 57                 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 58                     <level>debug</level>
 59                     <onMatch>ACCEPT</onMatch>
 60                     <onMismatch>DENY</onMismatch>
 61                 </filter>
 62             </appender>
 63         
 64             <!-- 時(shí)間滾動(dòng)輸出 level為 INFO 日志 -->
 65             <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 66                 <!-- 正在記錄的日志文件的路徑及文件名 -->
 67                 <file>${LOG_PATH}/log_info.log</file>
 68                 <!--日志文件輸出格式-->
 69                 <encoder>
 70                     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
 71                     <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 -->
 72                 </encoder>
 73                 <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 -->
 74                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 75                     <!--
 76                         歸檔的日志文件的路徑,例如今天是2017-04-26日志,當(dāng)前寫(xiě)的日志文件路徑為file節(jié)點(diǎn)指定,可以將此文件與file指定文件路徑設(shè)置為不同路徑,從而將當(dāng)前日志文件或歸檔日志文件置不同的目錄。
 77                         而2017-04-26的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引
 78                     -->
 79                     <fileNamePattern>${LOG_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
 80                     <!--
 81                         除按日志記錄之外,還配置了日志文件不能超過(guò)500M,若超過(guò)500M,日志文件會(huì)以索引0開(kāi)始,
 82                         命名日志文件,例如log-error-2017-04-26.0.log
 83                     -->
 84                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 85                         <maxFileSize>500MB</maxFileSize>
 86                     </timeBasedFileNamingAndTriggeringPolicy>
 87                     <!--日志文件保留天數(shù)-->
 88                     <maxHistory>30</maxHistory>
 89                 </rollingPolicy>
 90                 <!-- 此日志文件只記錄info級(jí)別的 -->
 91                 <filter class="ch.qos.logback.classic.filter.LevelFilter">
 92                     <level>info</level>
 93                     <onMatch>ACCEPT</onMatch>
 94                     <onMismatch>DENY</onMismatch>
 95                 </filter>
 96             </appender>
 97         
 98             <!-- 時(shí)間滾動(dòng)輸出 level為 WARN 日志 -->
 99             <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
100                 <!-- 正在記錄的日志文件的路徑及文件名 -->
101                 <file>${LOG_PATH}/log_warn.log</file>
102                 <!--日志文件輸出格式-->
103                 <encoder>
104                     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
105                     <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 -->
106                 </encoder>
107                 <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 -->
108                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
109                     <!--
110                         歸檔的日志文件的路徑,例如今天是2017-04-26日志,當(dāng)前寫(xiě)的日志文件路徑為file節(jié)點(diǎn)指定,可以將此文件與file指定文件路徑設(shè)置為不同路徑,從而將當(dāng)前日志文件或歸檔日志文件置不同的目錄。
111                         而2017-04-26的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引
112                     -->
113                     <fileNamePattern>${LOG_PATH}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
114                     <!--
115                         除按日志記錄之外,還配置了日志文件不能超過(guò)500M,若超過(guò)500M,日志文件會(huì)以索引0開(kāi)始,
116                         命名日志文件,例如log-error-2017-04-26.0.log
117                     -->
118                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
119                         <maxFileSize>500MB</maxFileSize>
120                     </timeBasedFileNamingAndTriggeringPolicy>
121                     <!--日志文件保留天數(shù)-->
122                     <maxHistory>30</maxHistory>
123                 </rollingPolicy>
124                 <!-- 此日志文件只記錄warn級(jí)別的 -->
125                 <filter class="ch.qos.logback.classic.filter.LevelFilter">
126                     <level>warn</level>
127                     <onMatch>ACCEPT</onMatch>
128                     <onMismatch>DENY</onMismatch>
129                 </filter>
130             </appender>
131         
132             <!-- 時(shí)間滾動(dòng)輸出 level為 ERROR 日志 -->
133             <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
134                 <!-- 正在記錄的日志文件的路徑及文件名 -->
135                 <file>${LOG_PATH}/log_error.log</file>
136                 <!--日志文件輸出格式-->
137                 <encoder>
138                     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
139                     <charset>UTF-8</charset> <!-- 此處設(shè)置字符集 -->
140                 </encoder>
141                 <!-- 日志記錄器的滾動(dòng)策略,按日期,按大小記錄 -->
142                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
143                     <!--
144                         歸檔的日志文件的路徑,例如今天是2017-04-26日志,當(dāng)前寫(xiě)的日志文件路徑為file節(jié)點(diǎn)指定,可以將此文件與file指定文件路徑設(shè)置為不同路徑,從而將當(dāng)前日志文件或歸檔日志文件置不同的目錄。
145                         而2017-04-26的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引
146                     -->
147                     <fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
148                     <!--
149                         除按日志記錄之外,還配置了日志文件不能超過(guò)500M,若超過(guò)500M,日志文件會(huì)以索引0開(kāi)始,
150                         命名日志文件,例如log-error-2017-04-26.0.log
151                     -->
152                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
153                         <maxFileSize>500MB</maxFileSize>
154                     </timeBasedFileNamingAndTriggeringPolicy>
155                     <!--日志文件保留天數(shù)-->
156                     <maxHistory>30</maxHistory>
157                 </rollingPolicy>
158                 <!-- 此日志文件只記錄ERROR級(jí)別的 -->
159                 <filter class="ch.qos.logback.classic.filter.LevelFilter">
160                     <level>error</level>
161                     <onMatch>ACCEPT</onMatch>
162                     <onMismatch>DENY</onMismatch>
163                 </filter>
164             </appender>
165         
166             <logger name="org.springframework.web" level="info"/>
167             <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
168             <logger name="cn.zhangbox.springboot" level="debug"/>
169         
170             <!--開(kāi)發(fā)環(huán)境:打印控制臺(tái)-->
171             <springProfile name="dev">
172                 <root level="info">
173                     <appender-ref ref="CONSOLE"/>
174                     <appender-ref ref="DEBUG_FILE"/>
175                     <appender-ref ref="INFO_FILE"/>
176                     <appender-ref ref="WARN_FILE"/>
177                     <appender-ref ref="ERROR_FILE"/>
178                 </root>
179             </springProfile>
180         
181             <!--測(cè)試環(huán)境:打印控制臺(tái)和輸出到文件-->
182             <springProfile name="test">
183                 <root level="info">
184                     <appender-ref ref="CONSOLE"/>
185                     <appender-ref ref="INFO_FILE"/>
186                     <appender-ref ref="WARN_FILE"/>
187                     <appender-ref ref="ERROR_FILE"/>
188                 </root>
189             </springProfile>
190         
191             <!--生產(chǎn)環(huán)境:輸出到文件-->
192             <springProfile name="prod">
193                 <root level="error">
194                     <appender-ref ref="CONSOLE"/>
195                     <appender-ref ref="DEBUG_FILE"/>
196                     <appender-ref ref="INFO_FILE"/>
197                     <appender-ref ref="ERROR_FILE"/>
198                 </root>
199             </springProfile>
200         
201         </configuration>

注意loback配置文件中

1 <logger name="cn.zhangbox.springboot" level="debug"/>

name的屬性值一定要是當(dāng)前工程的java代碼的完整目錄,因?yàn)?code>mybatis打印的日志級(jí)別是debug級(jí)別的,因此需要配置debug級(jí)別日志掃描的目錄。

來(lái)源:https://www./content-4-499751.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多