文件结构:
说明: 三个配置文件,application.properties ; application-dev.properties ; application-prod.properties ; 注意命名规则,然后通过spring.profiles.active指定指定文件生效.
logging.config 指定日志文件位置.
logback-spring.xml内容:
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <contextName>iot-cloud-api-logback</contextName> <springProperty scope="context" name="log.path" source="log.path"/> <!-- 控制台--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %line - %msg%n</Pattern> </encoder> </appender> <!-- info文件--> <appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>info</level> </filter> <file> ${log.path}/logs/info.log </file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>15</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %line - %msg%n</Pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- error文件--> <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>error</level> </filter> <file> ${log.path}/logs/error/error.log </file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${log.path}/error/error.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>15</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %line - %msg%n</Pattern> <charset>UTF-8</charset> </encoder> </appender> <!--这里定义的level是info,但是如果ref中具体的appender中定义了自己的level,以它们自己的为优先准则 --> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="infoFile"/> <appender-ref ref="errorFile"/> </root> </configuration>
说明: logback-spring.xml 命名可以使用<springProperty>来取spring配置文件中的属性.对应下图的值.