第五章 ,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)
上一篇 2022年4月24日 上午8:00
下一篇 2022年4月24日 上午8:00


相关推荐

  • java 栈的使用

    java 栈的使用Stack 的基本使用初始化 Stackstack newStack 判断是否为空 stack empty 取栈顶值 不出栈 stack peek 进栈 stack push Object 出栈 stack pop 实例 publicclassT publicstatic String args

    2026年3月17日
    2
  • Squid 代理服务器之 ACL 访问控制

    Squid 代理服务器之 ACL 访问控制文章目录1.ACL访问控制方式2.ACL规则优先级3.ACL的定义步骤4.定义访问控制列表4.1方法一4.2方法二1.ACL访问控制方式根据源地址、目标URL、文件类型等定义列表格式为:acl列表名称列表类型列表内容…针对已定义的acl列表进行限制格式为:http_accessallow或deny列表名称…2.ACL规则优先级一个用户访问代理服务器时,Squid会以从上至下的顺序匹配Squid中定义的所有规则列表,

    2022年6月21日
    25
  • 计算机服务怎么打开flash,快速讲解Win10自带的浏览器如何开启Adobe Flash?

    计算机服务怎么打开flash,快速讲解Win10自带的浏览器如何开启Adobe Flash?电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Win10自带的浏览器如何开启AdobeFlash?的问题,如果我们遇到了Win10自带的浏览器如何开启AdobeFlash?的情况,该怎么处理怎么才能解决Win10自带的浏览器如何开启AdobeFlash?带来的困扰呢,对于这样的问题其实我们只需要Win10专业版MicrosoftEdge42.17134…

    2022年4月30日
    194
  • 分享一个dify 开源的DSL仓库,里面有很多案例。

    分享一个dify 开源的DSL仓库,里面有很多案例。

    2026年3月13日
    2
  • armv7在哪儿看(armv7s)

    iOS中的armv7,armv7s,arm64,i386,x86_64都是什么在做静态库的时候以及引用静态库的时候经常会遇到一些关于真机模拟器不通用的情况,会报错找不到相应库导致编译失败,这里简单记录一下各种设备支持的架构。iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器,模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器…

    2022年4月11日
    45
  • n8n 快速入门

    n8n 快速入门

    2026年3月15日
    2

发表回复

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

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