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日志保存到指定的目录下。亲测可用。

相关推荐
qq_297574678 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
tb_first11 小时前
LangChain4j简单入门
java·spring boot·langchain4j
计算机学姐15 小时前
基于SpringBoot的民宿预定管理系统【三角色+个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·mysql·信息可视化·intellij-idea·推荐算法
计算机程序设计小李同学16 小时前
基于 Spring Boot + Vue 的龙虾专营店管理系统的设计与实现
java·spring boot·后端·spring·vue
LiZhen79816 小时前
SpringBoot 实现动态切换数据源
java·spring boot·mybatis
qq_124987075318 小时前
基于Java Web的城市花园小区维修管理系统的设计与实现(源码+论文+部署+安装)
java·开发语言·前端·spring boot·spring·毕业设计·计算机毕业设计
VX:Fegn089518 小时前
计算机毕业设计|基于springboot + vue云租车平台系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Chasmれ18 小时前
Spring Boot 1.x(基于Spring 4)中使用Java 8实现Token
java·spring boot·spring
汤姆yu18 小时前
2026基于springboot的在线招聘系统
java·spring boot·后端
计算机学姐19 小时前
基于SpringBoot的校园社团管理系统
java·vue.js·spring boot·后端·spring·信息可视化·推荐算法