Spring Boot多环境配置及Logback日志记录

学习目标

  • Spring Boot多环境配置
  • logback日志记录器

1.Spring Boot多环境配置

Spring Boot的针对不同的环境创建不同的配置文件,

语法结构:application-{profile}.properties

profile:代表的就是一套环境

1.1.需求

application-dev.yml 开发环境 端口8090

application-test.yml 测试环境 端口8091

application-prod.yml 生产环境 端口8092

1.2.运行项目:

在application.yml 中激活指定的配置文件:

properties 复制代码
#激活指定的配置文件
spring.profiles.active=dev

1.3.单个yml方式

yml支持多文档块的方式:

yaml 复制代码
spring:
  profiles.active: dev
 
# 开发环境配置
spring:
  profiles: dev
server:
  port: 8080
 
# 测试环境配置
spring:
  profiles: test
server:
  port: 8091
 
# 生产环境配置
spring:
  profiles: prod
server:
  port: 8092

2.logback日志记录器

2.1.logback介绍

logback是log4j团队创建的开源日志组件,与log4j类似但是比log4j更强大,是log4j的改良版本。主要优势在于:

a) 更快的实现,logback内核重写过,是的性能有了很大的提升,内存占用也更小。

b) logback-classic对slf4j进行了更好的集成

c) 自动重新加载配置文件,当配置文件修改后,logback-classic能自动重新加载配置文件

d) 配置文件能够处理不同的情况,开发人员在不同的环境下(开发,测试,生产)切换的时候,不需要创建多个

​ 文件,可以通过标签来实现

e) 自动压缩已经打出来的日志文件:RollingFileAppender在产生新文件的时候,会自动压缩已经打印出来的日志

​ 文件。而且这个压缩的过程是一个异步的过程。

2.2.logback.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
 <configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  
    <property name="LOG_HOME" value="${catalina.base:-.}/logs/" />  
    <!-- 控制台输出 -->   
    <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
       <!-- 日志输出编码 -->  
        <layout class="ch.qos.logback.classic.PatternLayout">   
             <!--
				      日志输出格式:
			            %d表示日期时间,
			            %thread表示线程名,
			            %-5level:级别从左显示5个字符宽度
			            %logger{50} 表示class的全名最长50个字符,否则按照句点分割
			            %msg:日志消息
			            %n是换行符
			--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
        </layout>   
    </appender>   
    <!-- 按照每天生成日志文件 -->   
    <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>   
        <layout class="ch.qos.logback.classic.PatternLayout">  
           <!--
				      日志输出格式:
			            %d表示日期时间,
			            %thread表示线程名,
			            %-5level:级别从左显示5个字符宽度
			            %logger{50} 表示class的全名最长50个字符,否则按照句点分割
			            %msg:日志消息
			            %n是换行符
			--> 
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   
            </pattern>   
       </layout> 
        <!--日志文件最大的大小-->
       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
         <MaxFileSize>10MB</MaxFileSize>
       </triggeringPolicy>
    </appender>     

    <!-- 日志输出级别 -->
    <root level="DEBUG">   
        <appender-ref ref="Stdout" />   
        <appender-ref ref="RollingFile" />   
    </root> 



<!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        日志异步到数据库 
        <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
           连接池 
           <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <driverClass>com.mysql.jdbc.Driver</driverClass>
              <url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
              <user>root</user>
              <password>root</password>
            </dataSource>
        </connectionSource>
  </appender> -->

</configuration>
相关推荐
程序员侠客行17 分钟前
Spring事务原理详解 三
java·后端·spring·架构
尚学教辅学习资料18 分钟前
基于SpringBoot+Vue+uniapp的高校招聘小程序+LW参考示例
spring boot·uni-app·招聘系统
Hello.Reader1 小时前
深入理解 Rust 的 `Rc<T>`:实现多所有权的智能指针
开发语言·后端·rust
yoona10202 小时前
Rust编程语言入门教程(八)所有权 Stack vs Heap
开发语言·后端·rust·区块链·学习方法
m0_748247552 小时前
springboot中配置logback-spring.xml
spring boot·spring·logback
m0_748250032 小时前
springboot使用logback自定义日志
java·spring boot·logback
程序猿熊跃晖2 小时前
多环境日志管理:使用Logback与Logstash集成实现高效日志处理
spring boot·elk·logback
考虑考虑3 小时前
MyCat2使用
java·后端·java ee
KingDol_MIni3 小时前
Spring Boot 集成 T-io 实现客户端服务器通信
java·服务器·spring boot
后端码匠3 小时前
Spring Boot3+Vue2极速整合:10分钟搭建DeepSeek AI对话系统
人工智能·spring boot·后端