SpringBoot application.yml logback.xml,多環境配置,支持 java -jar --spring.profiles.active
啟動命令為
//開發環境
java -jar app.jar --spring.profiles.active=dev--server.port=8060
//測試環境
java -jar app.jar --spring.profiles.active=qa --server.port=8060
//生產環境
java -jar app.jar --spring.profiles.active=prod --server.port=8060

application.yml,打包為jar的時候主要把spring.profile.active注釋掉.否則 命令行參數 --spring.profiles.active可能不生效,不知何解
spring:
 profiles:
 #指定讀取配置文件:dev(開發環境),prod(生產環境),qa(測試環境)
 active: qa
#日志
logging:
 config: classpath:logback-${spring.profiles.active}.xml
---------------------------------
logback-dev.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
 <contextName>logback</contextName>
 <property name="log.path" value="lzw/logback.log" />
 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
 <level>debug</level>
 </filter>
 <encoder>
 <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
 </pattern>
 </encoder>
 </appender>
 <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <file>${log.path}</file>
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
 </rollingPolicy>
 <encoder>
 <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
 </pattern>
 </encoder>
 </appender>
 <root level="warn">
 <appender-ref ref="console" />
 <!--<appender-ref ref="file" />-->
 </root>
 <logger name="org.springframework.scheduling" level="error" />
 <Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
 <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
 <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
 <Logger name="org.springframework" level="debug" />
 <logger name="com.lzw" level="debug" />
 <logger name="org.mybatis" level="debug" />
 <logger name="java.sql" level="error" />
 <logger name="java.sql.Connection" level="error" />
 <logger name="java.sql.Statement" level="error" />
 <logger name="java.sql.PreparedStatement" level="error" />
 <logger name="java.sql.ResultSet" level="error" />
</configuration>
-------------------------------
logback-qa.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration debug="true">
 <contextName>logback</contextName>
<property name="log.path" value="lzw/logback.log" />
 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
 <level>debug</level>
 </filter>
 <encoder>
 <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
 </pattern>
 </encoder>
 </appender>
 <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <file>${log.path}</file>
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
 </rollingPolicy>
 <encoder>
 <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
 </pattern>
 </encoder>
 </appender>
 <root level="warn">
 <appender-ref ref="file" />
 </root>
 <logger name="org.springframework.scheduling" level="error" />
 <logger name="com.lzw" level="warn" />
 <Logger name="org.apache.catalina.util.LifecycleBase" level="warn" />
 <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
 <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
 <Logger name="org.springframework" level="warn" />
 <logger name="org.mybatis" level="warn" />
 <logger name="java.sql" level="error" />
 <logger name="java.sql.Connection" level="error" />
 <logger name="java.sql.Statement" level="error" />
 <logger name="java.sql.PreparedStatement" level="error" />
 <logger name="java.sql.ResultSet" level="error" />
</configuration>
----------------------------------------
