Spring Boot项目——logback 动态获取yml文件配置参数
背景
- 在项目中,日志需要根据不同项目环境进行处理,比如记录日志级别,日志留存时间等。
- 我们需要在不同的yml文件中设置变量,logback文件中动态获取参数,进行日志配置。
方法
- yml文件
log:
file:
path: /data/appLogs/miner/miner-cron-logs/ #日志目录
maxhistory: 30 #留存天数
- logback文件使用
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <configuration> <!-- 日志文件存储位置 --> <springProperty scope="context" name="logPath" source="log.file.path" defaultValue="logs"/> <!-- 日志最大存活时间(天),默认30天 --> <springProperty scope="context" name="maxHistory" source="log.file.maxhistory" defaultValue="30"/> <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 日志保存目录 --> <param name="file" value="${logPath}/debugger.log"/> <param name="Encoding" value="UTF-8"/> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/%d{yyyy-MM-dd,aux}/debug.%d{yyyy-MM-dd}.log </fileNamePattern> <!-- 日志保存时间 --> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>%d [%p %t %X{ip} %X{flag} %F:%L] - %m%n</pattern> </encoder> </appender> </configuration>