環(huán)境:
1 windows2 jdk 83 maven 3.04 IDEA
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/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>
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: 808111 spring:12 profiles: dev13 #日志14 logging:15 #日志配置文件位置16 config: classpath:log/logback.xml17 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下18 path: log/spring-boot-log19 20 #文檔塊區(qū)分為三個(gè)---21 ---22 server:23 port: 808224 spring:25 profiles: test26 #日志27 logging:28 #日志配置文件位置29 config: classpath:log/logback.xml30 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下31 path: usr/spring-boot/log/spring-boot-log32 33 #文檔塊區(qū)分為三個(gè)---34 ---35 server:36 port: 808337 spring:38 profiles: prod39 #日志40 logging:41 #日志配置文件位置42 config: classpath:log/logback.xml43 #日志打印位置,這里是默認(rèn)在項(xiàng)目根路徑下44 path: usr/spring-boot/log/spring-boot-log
在工程resources
文件夾下新建文件夾log
,并在該文件夾下創(chuàng)建logback.xml
文件,加入以下配置:
1 <!-- Logback configuration. See http://logback.qos.ch/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 <!-- 彩色日志依賴的渲染類 --> 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是為開發(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)前寫的日志文件路徑為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開始, 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)前寫的日志文件路徑為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開始, 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)前寫的日志文件路徑為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開始,116 命名日志文件,例如log-error-2017-04-26.0.log117 -->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)前寫的日志文件路徑為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開始,150 命名日志文件,例如log-error-2017-04-26.0.log151 -->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 <!--開發(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í)別日志掃描的目錄。
聯(lián)系客服