Spring Boot学习笔记-3

Spring Boot学习笔记-3

一、日志

1.常见日志框架

日志门面(抽象层/接口层):JCL,SLF4j,jboss-logging
日志实现:Log4j,Log4j2,JUL,Logback

推荐使用SLF4j + Logback


2.SLF4j

日志记录应调用日志抽象层(SLF4j)内方法
给系统导入SLF4j的jar和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后配置文件是对实现框架进行配置


3.统一日志框架(SLF4j+Logback)

  1. 将其它日志框架排除
  2. 通过包装层相应jar包替换原本日志框架jar
  3. 导入SLF4j实现框架(logback)

在这里插入图片描述

项目依赖树:

在这里插入图片描述
在这里插入图片描述

将其它日志转为SLF4j:
在这里插入图片描述

最终使用slf4j+logback进行日志记录

//中间转换包
//jul-to-slf4j-1.7.30.jar/bridge/SLF4JBridgeHandler
public static void install() {
    LogManager.getLogManager().getLogger("").addHandler(new SLF4JBridgeHandler());
}

如果引入其它框架一定要将其默认日志依赖移除,因为转换包下也有同名包,不移除会导致识别错误,移除后Spring Boot即可适配

在这里插入图片描述


4.日志使用

//记录器
Logger logger = LoggerFactory.getLogger(getClass());

@Test
void contextLoads() {
    //日志级别(由低到高)
    //可以调整输出日志级别,只打印相同及更高级别日志(默认级别为info级别)
    logger.trace("trace日志:");
    logger.debug("debug日志:");
    logger.info("info日志:");
    logger.warn("warn日志:");
    logger.error("error日志:");
    }
//调整日志级别(level后接调整范围)
logging.level.com.springbootdemo.demo1 = trace

在这里插入图片描述

//输出到指定路径
logging.file.name=C:/Users/12728/Desktop/springboot.log
//在当前磁盘下创建路径保存(文件名默认为spring.log)
logging.file.path=/springboot/log
//指定日志输出格式(控制台)
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是换行符
*/

5.指定配置

在类路径下(resources)添加每个框架自己的配置文件(指定文件名),即可替代默认配置

Logging SystemCustomization
Logbacklogback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy
Log4j2log4j2-spring.xml,log4j2.xml
Java Util Logginglogging.properties

logback.xml:直接被日志框架识别
logback-spring.xml:日志框架不直接加载日志配置项,而是由SpringBoot解析日志配置,可以使用SpringBoot的Profile功能(相关配置只在对应环境下生效)

<layout class="ch.qos.logback.classic.PatternLayout">
    <springProfile name="dev">
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ----> %-5level %logger{50} - %msg%n</pattern>
    </springProfile>

    <springProfile name="!dev">
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ===== [%thread] ===== %-5level %logger{50} - %msg%n</pattern>
    </springProfile>
</layout>
//application.properties
//激活dev环境
spring.profiles.active=dev

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值