趁今天有時間整理了一下java
啓動命令爲spring
//開發環境sql
java -jar app.jar --spring.profiles.active=dev--server.port=8060apache
//測試環境tomcat
java -jar app.jar --spring.profiles.active=qa --server.port=8060mybatis
//生產環境app
java -jar app.jar --spring.profiles.active=prod --server.port=8060post
廢話少說,直接上代碼測試
application.yml,打包爲jar的時候主要把spring.profile.active註釋掉.不然 命令行參數 --spring.profiles.active可能不生效,不知何解spa
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>