第五章 ,springboot 日志框架

第五章 ,springboot 日志框架第五章 ,springboot 日志框架

大家好,又见面了,我是你们的朋友全栈君。

一,选用SLF4j和logback

(注:spring框架默认使用的事JCL日志框架)

二,使用

1,如何在系统中使用slf4j(不同于log4j)

以后开发的时候,日志记录方法的调用,不应该直接调用日志的实现层,而是调用日志的抽象层里面的方法(也就是先biz层再dao层)

打开slf4j的首页,找到用户手册链接:

第五章 ,springboot 日志框架

有个案例,长下面这个样子:

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是属于抽象层,logback是实现层。


二,这里我们新建个spring initializr 工程。

然后打开pom.xml 

对下图位置右键:

第五章 ,springboot 日志框架

选择–》Diagrams–》show Dependencies 会显示各jar包的依赖关系(alt可放大看)

其中可以看到springboot使用的日志系统:

第五章 ,springboot 日志框架

所以

1,springboot底层也是使用slf4j+logback的方式进行日志记录

2,springboot也把其他的日志都替换成了slf4j

3,如果要引入其他框架,一定要把这个框架的默认的日志依赖移除掉

 


三,日志种类和日志等级

1, 

package com.liuxin.springboot;

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 Springboot03LoggingApplicationTests {
    Logger logger = LoggerFactory.getLogger(getClass());

    //日志级别又低到高:trace<debug<info<warn<error
    @Test
    public void contextLoads() {
        logger.trace("trace日志");
        logger.debug("debug日志");
        logger.info("info日志");
        logger.warn("warn日志");
        logger.error("error日志");
    }

}

springboot默认使用的是info级别的,也就是上面案例只会输出后面三行

2,如在配置文件中设置日志级别,就用设定的,没有设定就用默认的,如下:

第五章 ,springboot 日志框架

这样再次运行就能打印所有日志了。

3,指定日志输出的文件

第五章 ,springboot 日志框架

这样就能在当前项目下创建一个springboot.log文件。

4,在日志中的输出格式:

logging.level.com.liuxin=trace

#指定日志的输出目录,默认根目录
#logging.file=springboot.log
#指定本地盘
#logging.file=F:/springboot.log

#在当前磁盘的跟目录下创建spring文件夹和里面的log文件,使用spring.log作为默认,如果这个项目在c盘,那么这个就会出现C:/srping/log
logging.path=/spring/log 
#指定控制台输出的格式     下面等号右边的含义以此是 %d:日期  %thread:线程号   %-5level:日志级别从左显示5个字符  
# %logger{50}:logger名字最长50个字符,否则安装句号分割   %msg:消息信息 %n:换行符
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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105996.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringMVC 拦截器的使用「建议收藏」

    SpringMVC 拦截器的使用「建议收藏」SpringMVC拦截器的使用1.拦截器作用2.单个拦截器3.多个拦截器参考资料:https://spring-mvc.linesh.tw/1.拦截器作用SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。可以定义拦截器链,连接器链就是将拦截器按着顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。拦截器和过滤器的功能比较类似,有以下区别:过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术;拦截器是SpringM

    2025年6月10日
    4
  • cmos出现问题_sensor和cmos

    cmos出现问题_sensor和cmos在某些场景下,使用者可以看到相机画面出现一条一条的滚动暗条纹,如下图片所示,这样的现象,通常是CMOSsensor曝光时间方面的因素引起的。

    2022年10月13日
    3
  • charles打断点有什么用_charles打断点后 如何执行

    charles打断点有什么用_charles打断点后 如何执行前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月29日
    14
  • 二、第一个java程序:HelloWorld

    二、第一个java程序:HelloWorld前面讲解了java程序的配置,现在要开始进入实例的编程了,第一个程序还是沿用经典的HelloWorld程序进行讲解。一、编程源代码     打开记事本,输入以下代码:publicclassHelloWorld{     //程序的主函数入门     publicstaticvoidmain(Stringargs[])

    2022年5月28日
    37
  • Linux C Socket UDP编程介绍及实例

    Linux C Socket UDP编程介绍及实例1 UDP 网络编程主要流程 UDP 协议的程序设计框架 客户端和服务器之间的差别在于服务器必须使用 bind 函数来绑定侦听的本地 UDP 端口 而客户端则可以不进行绑定 直接发送到服务器地址的某个端口地址 框图如图 1 3 所示 UDP 协议的服务器端流程服务器流程主要分为下述 6 个部分 即建立套接字 设置套接字地址参数 进行端口绑定 接收数据 发送数据 关闭套接字等 1 建立套接字文件描述符

    2025年12月10日
    4
  • hackbar 使用教程_hackbar简单安装使用教程

    hackbar 使用教程_hackbar简单安装使用教程安装hackbar:在火狐的附加组件中搜索“hackbar”,将它添加到火狐浏览器中,重启后Firefox后安装完成,按F9键打开我们就会看到在地址栏下面会出现一个大框框就是hackbar了框框很大碍事怎么办?简单啊F9试试首先先介绍横向第一排的下拉框:INT、HEX、OCT、Alphabet、AlNum分别代表了整数、十六进制、八进制、字母表、所有。假设你的输入框中有a这个字符,然后你将…

    2022年6月4日
    648

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号