下面配置文件将分别配置 logback 在 dev 环境中同时将日志输出到控制台和日志文件,而 test、prod 环境则仅仅输出到日志文件。
配置内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<!-- 定义日志文件路径变量 -->
<substitutionProperty name="log.base" value="../logs" />
<!-- 最大文件尺寸500M -->
<property name="maxFileSize" value="500MB"/>
<!-- 总日志大小10G -->
<property name="totalLogSize" value="10GB"/>
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}/log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<maxHistory>90</maxHistory>
<maxFileSize>${maxFileSize}</maxFileSize>
<totalSizeCap>${totalLogSize}</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<FileNamePattern>${log.base}/log-%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
</rollingPolicy>
<encoder charset="utf-8">
<pattern>%date [%thread] %-5level %logger{36} - %.-1024msg%n</pattern>
</encoder>
</appender>
<!-- 输出到控制台 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="utf-8">
<pattern>%date [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 开发环境同时输出到控制台和日志文件 -->
<springProfile name="dev">
<!-- 日志级别为 INFO -->
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="logFile" />
</root>
</springProfile>
<!-- 测试和生成环境只输出到日志文件,不输出到控制台 -->
<springProfile name="test,prod">
<!-- 日志级别为 WARN -->
<root level="warn">
<appender-ref ref="logFile" />
</root>
</springProfile>
</configuration>注意:文件名称必须为 logback-spring.xml 才可以。