使用logback日志文件多环境配置路径方式
作者:猩猩之火
文章介绍了两种解决Spring Boot项目中日志文件多环境配置路径问题的方法,第一种方法是通过启动jar包时添加参数指定日志配置文件;第二种方法是通过配置logback-spring.xml文件根据不同的环境加载不同的日志路径
logback日志文件多环境配置路径
项目中遇到问题,springboot项目 本地jar包部署到现场后,经常遇到现场的日志存放的路径会更改,经过查阅,有两种方式,下面简单说明一下。
一、第一种 启动jar包时 添加参数
--logging.config=F:\hgtest\config\logback.xml,采用指定的日志配置文件。
start javaw -jar F:\hgtest\hg.jar --spring.config.location=F:\hgtest\config\ --logging.config=F:\hgtest\config\logback.xml
二、多环境配置日志存放的路径
启动jar会根据spring.profiles.active的值来判断取哪个日志路径保存日志。
1、添加依赖,方便使用<springProperty> 标签
<!-- Logback Classic Module --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <!-- 使用适合的版本号 --> </dependency>
2、修改logback-spring.xml文件配置
备注:
- logback.xml 和 logback-spring.xml的区别
- logback和logback-spring.xml都可以用来配置logback,但是两者的加载顺序是不一样的。
- logback.xml—>application.properties—>logback-spring.xml.
- 所以 有变量配置在了 application.properties 如果logback.xml进行取值就会取值不到,所以建议在Springboot中 尽量使用 logback-spring.xml。
3、logback-spring.xml修改 增加路径变量读取
<!-- 日志存放路径 --> <springProperty scope="context" name="log.path" source="logging.file.path" defaultValue="./logs" /> <!-- 系统日志输出 --> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/sys-info.log</file> <!-- 循环政策:基于时间创建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的历史 15天 --> <maxHistory>15</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>INFO</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> </appender>
这里配置了springProperty 用于从 application.properties 中获取文件地址,并且配置了默认地址。
name
:logback-spring.xml中可以使用的变量,对应下面引用的变量值。source
:来自 application.properties中配置的变量defaultValue
:获取不到 application.properties中配置的变量时 默认的值,(这里建议直接配置生产环境的位置)
这样配置后,即可把log日志保存到指定的目录下。亲测可用。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。