logback多环境日志配置(SpringBoot项目)

使用场景

  线上环境启动项目时,把程序的日志输出到指定的日志文件中。控制台中不打印日志,这样可以节省磁盘IO资源。而在本地启动时,把日志直接输出到控制台即可,方便排查问题。 此时,就需要根据不同的环境,使用不同的日志输出策略。

方式一:springProfile标签

在同一份日志配置文件中,编写指定的日志输出策略。

1. logback-spring.xml文件

在springProfile标签内编写日志输出规则,标签中的name属性值就是环境的编码

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<property name="logback_app_name" value="jtest/springboot" />
    <property name="LOG_PATH" value="${user.home}/${logback_app_name}/logs" />
    
    <!-- 1.控制台输出日志 ConsoleAppender -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoder 默认配置为PatternLayoutEncoder -->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}---%magenta([%thread])---%-5level---%blue([%c])---%green([%L])---[%msg]%n</pattern>
        </encoder>
    </appender>

    <!-- 2.输出到文件 -->
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--文件路径:可使用ognl-->
            <fileNamePattern>${LOG_PATH}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!--每个文件最大100MB;保存60天;总文件最多20GB-->
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>60</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}---%magenta([%thread])---%-5level---%blue([%c])---%green([%L])---[%msg]%n</pattern>
        </encoder>
    </appender>


    <!-- 线上环境,日志配置 -->
    <springProfile name="production">
	    <root level="info">
	        <!--日志输出到文件-->
	        <appender-ref ref="rollingFile"/>
	    </root>
	</springProfile>
	
    <!-- 本地、开发环境,日志配置 可以写logback支持的所有节点 -->
    <springProfile name="local,dev">
        <root level="INFO">
			<!--控制台日志:生产环境建议关掉-->
            <appender-ref ref="STDOUT" />
        </root>
    </springProfile>
</configuration>

在springProfile标签中,可以编写任何logback原生支持的标签。

2. 指定启动环境

两种指定启动环境的方式:

  • 在jvm启动参数中加入:-Dspring.profiles.active=环境编码 (推荐)
    如:-Dspring.profiles.active=local
  • 设置属性值:spring.profiles.active=环境编码
    可以在application.properties或者application.yml中指定,如在application.properties文件中指定:
    spring.profiles.active=local
    
    这种硬编码方式,发布在不同的环境,需要修改这个属性值。
方式二:指定日志配置文件

可以根据运行环境的不同,指定加载指定的日志配置文件。

1. 设置logging.config属性

Springboot中设置属性值,一般在application.properties或者application.yml文件中设置。

在application.yml中指定日志配置文件的路径

logging:
  config: classpath:logback-spring-${spring.profiles.active}.xml

此时系统就会加载logback-spring-${spring.profiles.active}.xml这个日志配置文件。
可以看到${spring.profiles.active}是一个变量,我们可以在系统启动的时候设置这个值,方法与上面“方式一”中的指定启动环境一样。

参考:官方说明

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用logback作为日志框架来配置Spring Boot应用程序。以下是一些基本的步骤: 1. 在你的项目的依赖管理文件(比如pom.xml)中,添加logback的依赖项: ```xml <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> ``` 2. 创建一个logback配置文件,例如logback.xml。在Spring Boot中,你可以将该文件放置在src/main/resources目录下。以下是一个示例配置文件: ```xml <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="CONSOLE" /> </root> </configuration> ``` 该示例配置文件定义了一个名为CONSOLE的appender,将日志输出到控制台。它还定义了一个名为root的logger,将日志级别设置为info,并将其关联到CONSOLE appender。 3. 在Spring Boot应用程序的application.properties或application.yml文件中,添加以下配置项,以指定使用logback作为日志框架: application.properties: ```properties logging.config=classpath:logback.xml ``` application.yml: ```yaml logging: config: classpath:logback.xml ``` 这样,当你启动应用程序时,logback将被自动配置为你的日志框架。 请根据你的需求修改logback.xml文件中的配置,以满足你的日志记录需求。这只是一个基本的配置示例。你可以通过logback的官方文档进一步了解更多配置选项和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值