背景
- 在项目中,日志需要根据不同项目环境进行处理,比如记录日志级别,日志留存时间等。
- 我们需要在不同的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>