15.<Spring Boot 日志>

🌸SpringBoot日志:记录应用的生命脉动🌸

日志是应用程序的"黑匣子",SpringBoot提供了强大而灵活的日志系统,让我们能够轻松记录和追踪应用运行状态。下面让我们一起探索SpringBoot日志的魅力!✨

🔍默认日志配置

SpringBoot默认使用Logback作为日志框架,只需简单依赖`spring-boot-starter`就会自动引入:

```java
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;

@RestController
publicclassMyController{
//获取Logger实例
privatestaticfinalLoggerlogger=LoggerFactory.getLogger(MyController.class);

@GetMapping("/hello")
publicStringhello(){
logger.trace("这是一条TRACE级别日志");
logger.debug("这是一条DEBUG级别日志");
logger.info("这是一条INFO级别日志-访问了/hello端点");
logger.warn("这是一条WARN级别日志");
logger.error("这是一条ERROR级别日志");
return"Hello,SpringBootLogging!";
}
}
```

⚙️日志级别配置

在`application.properties`或`application.yml`中轻松配置日志级别:

```properties
设置根日志级别
logging.level.root=WARN

设置特定包的日志级别
logging.level.com.example.demo=DEBUG

输出到文件
logging.file.name=myapp.log
logging.file.path=/var/log

自定义日志格式
logging.pattern.console=%d{yyyy-MM-ddHH:mm:ss}-%logger{36}-%msg%n
```

🌈高级日志配置

想要更多控制?可以添加自定义的`logback-spring.xml`文件:

```xml



%d{yyyy-MM-ddHH:mm:ss}[%thread]%-5level%logger{36}-%msg%n









```

💡日志使用最佳实践

1.合理选择日志级别:DEBUG用于开发,INFO用于生产,ERROR用于错误
2.避免过度日志:太多日志会降低性能并淹没重要信息
3.包含上下文信息:记录相关参数和状态
4.使用占位符:`logger.debug("用户ID:{},操作:{}",userId,action);`比字符串拼接更高效
5.定期归档日志:防止日志文件过大

SpringBoot日志系统就像应用程序的"心电图"💓,记录着每一次"心跳"和"异常"。合理利用日志,能让你的应用更加健壮和可维护!🚀

记住:好的日志习惯是优秀开发者的标志之一!🏆
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example.project</groupId> <artifactId>pms-server-data-expand</artifactId> <version>1.0.0-SNAPSHOT</version> <!-- 统一管理依赖版本 --> <properties> <java.version>1.8</java.version> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> <!-- 基础框架版本 --> <spring-boot.version>2.6.3</spring-boot.version> <!-- 根据TongWeb兼容性指定 --> <tongweb-starter.version>7.0.E.6_P14</tongweb-starter.version> <dynamic-datasource.version>3.5.0</dynamic-datasource.version> <magic-api.version>1.7.1</magic-api.version> <spring-cloud.version>2021.0.1</spring-cloud.version> <!-- 工具库版本 --> <easyexcel.version>3.3.2</easyexcel.version> <easypoi.version>3.2.0</easypoi.version> <hutool.version>5.6.3</hutool.version> <commons-lang3.version>3.12.0</commons-lang3.version> <commons-collections4.version>4.4</commons-collections4.version> <lombok.version>1.18.28</lombok.version> <swagger.version>3.0.0</swagger.version> <!-- 数据库相关 --> <p6spy.version>3.9.1</p6spy.version> <mysql-connector.version>8.0.33</mysql-connector.version> <dm-jdbc.version>8.1.3.62</dm-jdbc.version> <mybatis-plus.version>3.5.1</mybatis-plus.version> <!-- 日志 --> <logstash-logback.version>7.3</logstash-logback.version> </properties> <!-- 新增依赖管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- Spring Boot Starter (排除Tomcat) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- TongWeb 应用服务器 --> <dependency> <groupId>com.tongweb.springboot</groupId> <artifactId>tongweb-spring-boot-starter-2.x</artifactId> <version>${tongweb-starter.version}</version> </dependency> <!-- Apache Commons --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${commons-collections4.version}</version> </dependency> <!-- Magic API --> <dependency> <groupId>org.ssssssss</groupId> <artifactId>magic-api-spring-boot-starter</artifactId> <version>${magic-api.version}</version> </dependency> <!-- Excel 工具 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>${easyexcel.version}</version> </dependency> <!-- Easypoi 统一版本管理 --> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>${easypoi.version}</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-web</artifactId> <version>${easypoi.version}</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-annotation</artifactId> <version>${easypoi.version}</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version> </dependency> <!-- 动态数据源 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>${dynamic-datasource.version}</version> </dependency> <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>${p6spy.version}</version> </dependency> <!-- 数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver18</artifactId> <version>${dm-jdbc.version}</version> </dependency> <!-- MyBatis-Plus (包含 MyBatis) --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> <!-- 日志 --> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>${logstash-logback.version}</version> </dependency> <!-- Spring Boot 基础模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>${spring-boot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <version>${spring-boot.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <version>${spring-boot.version}</version> <optional>true</optional> </dependency> <!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <!-- 需在properties中补充 --> <optional>true</optional> </dependency> <!-- Swagger API 文档 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>${swagger.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> <!-- Fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> <!-- 使用较新的稳定版本,注意安全漏洞问题 --> </dependency> <dependency> <groupId>com.powerpms</groupId> <artifactId>pms-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.powerpms</groupId> <artifactId>pms-common-core</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.powerpms</groupId> <artifactId>pms-common-security</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project> 请修复
08-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值