下面配置文件将分别配置 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 才可以。