springboot多環境配置logback
-
- 1. 建立springboot項目
- 2. 引入相關依賴
- 3. 在springboot的yml檔案中對logging進行配置
- 4. logback-spring.xml
1. 建立springboot項目
直接使用idea建立或者官網下載下傳包導入這裡就不做過多贅述。
2. 引入相關依賴
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile 'mysql:mysql-connector-java:6.0.6'
compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.1"
compile 'org.mybatis.generator:mybatis-generator-core:1.3.2'
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile group: 'junit', name: 'junit', version: '4.12'
}
Spring Boot 內建logback需要添加spring-boot-starter-logging依賴,而此依賴已經在spring-boot-starter中添加過了,是以不用再添加此依賴了(如下圖)
3. 在springboot的yml檔案中對logging進行配置
application-dev.yml:
logging:
path: D:\\log\\dev
config: classpath:logback-spring.xml
level:
root: debug
application-test.yml:
logging:
path: D:\\log\\test
config: classpath:logback-spring.xml
level:
root: info
4. logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定義日志檔案的存儲位址 從springboot配置檔案中擷取路徑-->
<springProperty scope="context" name="LOG_PATH" source="logging.path"/>
<!--springboot配置檔案中擷取日志級别-->
<springProperty scope="context" name="LOG_LEVEL" source="logging.level.root"/>
<property name="LOG_NAME" value="main"/>
<!--引入預設的一些設定-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--web資訊-->
<logger name="org.springframework.web" level="info"/>
<!--寫入日志到控制台的appender,用預設的,但是要去掉charset,否則windows下tomcat下亂碼-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--寫入日志到檔案的appender-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_NAME}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>512MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--異步到檔案-->
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE"/>
</appender>
<!--生産環境:列印控制台和輸出到檔案-->
<springProfile name="prod">
<root level="${LOG_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>
<!--開發環境:列印控制台-->
<springProfile name="dev">
<root level="${LOG_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>
<!--測試環境:列印控制台-->
<springProfile name="test">
<!-- 列印sql -->
<logger name="com.sun.example" level="DEBUG"/>
<root level="${LOG_LEVEL}">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncFileAppender"/>
</root>
</springProfile>
</configuration>
參考:
蝈蝈的部落格 - Spring Boot教程(五):預設日志logback
朱兆麟 - Spring Boot Logging 配置
結合了上面兩個部落格的配置 加上springProperty 标簽的應用
希望可以幫到各位!