SpringBoot学习笔记-3:第三章 Spring Boot 日志

简介: SpringBoot学习笔记-3:第三章 Spring Boot 日志

第三章 Spring Boot 日志

1、日志框架分类和选择

日志框架:

日志门面(抽象层):
JCL Jakarta Commons Logging
SLF4j Simple Logging Facade for Java
Jboss-logging
日志实现:
JUL Java.util.logging
logback
log4j
log4j2


SpringBoot 选择:

  1. 日志门面 SLF4j
  2. 日志实现 logback

2、slf4j 使用原理

开发的时候,日志记录方法的调用不应该来直接调用日志的实现类

而是调用日志抽象层里的方法

http://www.slf4j.org/manual.html

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }


image.png

每一个日志的实现框架都有自己的配置文件,

使用 slf4j 以后,配置文件还是做成日志实现框架的配置文件

3、其他日志框架统一转换为 slf4j

遗留问题, 各框架使用的日志框架不一样

Spring (commons-logging)
Hibernate(jboss-logging)
MyBaits


统一日志框架

image.png


  1. 将系统中其他日志框架先排除
  2. 用中间包来替换原有的日志框架
  3. 引入 slf4j 其他实现

4、SpringBoot 日志关系

  1. SpringBoot 能自动适配所有日志,底层使用 slf4j+logback 方式记录日志
  2. SpringBoot 把其他日志替换成了 slf4j
  3. 中间替换包
  4. 如果引入其他框架,需要把其他框架默认的日志依赖移除

5、SpringBoot 默认配置

日志级别由低到高

trace
debug
info  默认级别
warn
error


修改日志级别

application.properties

logging.level.com.className=trace
• 1


使用示例

package com.mouday;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    Logger logger = LoggerFactory.getLogger(getClass());
    @Test
    public void contextLoads() {
        logger.trace("trace");
        logger.debug("trace");
        logger.info("trace");
        logger.warn("trace");
        logger.error("trace");
    }
}

日志配置

# 指定日志文件(优先作用)
logging.file=spring.log
# 指定日志路径
logging.path=logs
# 控制台输出日志格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
# 文件输出日志格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] %-5level %logger{50} - %msg%n


日志格式说明


%d           日期时间

%thread      线程名

%-5level     级别从左显示5个字符宽度

%logger{50}  logger名字最长显示50个字符,否则按照句点分割

%msg         日志消息

%n           换行


6、指定日志文件和日志 Profile 功能

建立使用日志框架的配置文件,springboot 将不使用默认配置


logback                logback-spring.xml, logback.xml
Log4j2                 log4j2-spring.xml
JUL(Java Util Logging) logging.properties


说明

logback.xml 直接被日志框架识别
logback-spring.xml 日志框架不直接加载配置文件
• 1
• 2

可以使用高级功能

<springProfile name="dev">
</springProfile>


7、切换日志框架

可以按照 slf4j 日志适配图进行切换

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
2月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
2月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
446 2
|
3月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
2876 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
631 5
存储 JSON Java
540 0
|
3月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
1411 0
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
836 54
|
9月前
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
967 13

热门文章

最新文章