资讯专栏INFORMATION COLUMN

spring-boot日志

nifhlheimr / 1985人阅读

摘要:这篇文章是边听尚硅谷的课程边记的笔记,也是为了之后方便查看,视频链接精彩的故事小张负责一个大型系统的开发,为了监控系统的运行状况,系统中包含大量的语句,为了更好地管理呢,小张决定写一个日志框架对日志进行管理,他设想的日志框架应该包含以下几个

这篇文章是边听尚硅谷的课程边记的笔记,也是为了之后方便查看,视频链接:https://www.bilibili.com/vide...

1. 精彩的故事

小张负责一个大型系统的开发,为了监控系统的运行状况,系统中包含大量的System.out.println()语句,为了更好地管理呢,小张决定写一个日志框架对日志进行管理,他设想的日志框架应该包含以下几个功能:

日志应该能分为不同的等级

日志应该按天保存在文件中

在此基础上小张开发出了这样一个日志框架,但是为了使用这个日志框架,当小张修改了这个日志框架中的内容之后,系统中相关的代码都需要进行修改。为此,小张想到了一种模式:
小张为所有的日志框架写了一个统一的接口层:日志门面(抽象层),该日志门面定义了通用的功能接口,具体的实现可以有不同的实现

2. 市面上的日志框架
日志门面(日志抽象层) 日志实现
Jakarta Commons Logging(不再更新),jboss-logging(生来不为普通程序猿所用), slf4j log4j(落后),java.util.Logging(不好用),Logback,Log4j2(与Log4j开发不是同一人)

最终选择:日志门面:slf4j 日志实现:Logback

3. slf4j

如何在系统中使用slf4j,在系统中导入slf4j和logback的jar包

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");
  }
}

每个日志框架都有自己的配置文件,使用slf4j后,配置文件还是使用日志实现框架自己本身的配置文件

4. 日志框架兼容问题
假如我现在开发A系统用的日志框架是slf4j+logback,但是开发系统时用到了spring框架(框架本身的日志记录依赖common-logging),Hibernate(jboss),Mybatis....那么我这个系统如何统一使用slf4j+logback进行日志记录??

解决方案:

将系统中其他日志框架先排除掉

用中间包来替换原有的日志框架

再导入slf4j的其他的实现

5. SpringBoot日志关系

spring-boot-starter

        
            org.springframework.boot
            spring-boot-starter
        

sring-boot-starter-logging

        
            org.springframework.boot
            spring-boot-starter-logging
        

总结:

SpringBoot底层也是使用slf4j+Logback的方式进行日志记录;

SpringBoot也把其他的日志框架替换成了slf4j

如果我们引入了其他框架,一定要把这个框架的默认日志框架移除掉

        
            org.springframework
            spring-core
            
                
                    commons-logging
                    commons-logging
                
            
        
6. SpringBoot日志使用 1. 默认配置

SpringBoot默认给我们配置好了日志,可以直接使用,默认的日志级别是info;

    Logger logger = LoggerFactory.getLogger(getClass());

    @Test
    public void contextLoads() {
        /*日志级别trace
 2. 修改日志的配置 
# 配置整个项目的日志级别
logging.level.root=debug

# 配置指定包下面的日志级别
logging.level.com.luhuiling=info
 
# logging.file指定日志文件的名称,如果不指定,日志只在控制台输出
logging.file=D:/springboot.log

# logging.path指定日志文件的路径,如果不指定,文件将存放在项目根目录下
logging.path

# 控制台输出日志的格式
logging.pattern.console 
        
# 文件中输出日志的格式
logging.pattern.file 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76599.html

相关文章

  • Spring Boot [配置-上篇]

    摘要:在年首次发表了这种语言,另外与也是这语言的共同设计者。每种都可以通过配置使用控制台或者文件输出日志内容。可以通过是中的一个设置的日志级别。参考文档新年彩蛋自定义参考指南配置类配置详解 导读: 在上篇文章学习到了如何搭建一个简单的Spring Boot的项目,这篇文章我们主要围绕Spring Boot的外部化文件展开, 快速开始:外部化配置 首先是一个典型的Spring Boot的项...

    xuweijian 评论0 收藏0
  • SpringBoot 入门简介

    摘要:这里使用的是数据库启动类上加上注解在启动类中添加对包扫描扫描多个包下的可以有以下几种方法扫描会自动加载相关配置,数据源就会自动注入到中,会自动注入到中,可以直接使用。有配置文件下的使用扫描多个包下的可以有以下几种方法扫描 Spring-Boot 学习笔记 1 Spring-Boot 介绍 1.1 什么是Spring-Boot Spring-Boot是由Pivotal团队提供的全新框架...

    chuyao 评论0 收藏0
  • Spring Boot - 自定义启动banner

    摘要:背景这段时间较忙,有些想念小红,为了表达我对小红的思念之情,决定将启动的研究一下,看看是否能够自定义,让我天天能够看到她。 背景 这段时间较忙,有些想念小红,为了表达我对小红的思念之情,决定将spring boot启动的banner研究一下,看看是否能够自定义,让我天天能够看到她。 展示 经过调研,发现自定义banner是一个轻松愉快的过程,忍不住让我多启动几次,先看看效果:(省略了一...

    CollinPeng 评论0 收藏0

发表评论

0条评论

nifhlheimr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<