大家好,又见面了,我是你们的朋友全栈君。
一,选用SLF4j和logback
(注:spring框架默认使用的事JCL日志框架)
二,使用
1,如何在系统中使用slf4j(不同于log4j)
以后开发的时候,日志记录方法的调用,不应该直接调用日志的实现层,而是调用日志的抽象层里面的方法(也就是先biz层再dao层)
打开slf4j的首页,找到用户手册链接:
有个案例,长下面这个样子:
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
对下图位置右键:
选择–》Diagrams–》show Dependencies 会显示各jar包的依赖关系(alt可放大看)
其中可以看到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,如在配置文件中设置日志级别,就用设定的,没有设定就用默认的,如下:
这样再次运行就能打印所有日志了。
3,指定日志输出的文件
这样就能在当前项目下创建一个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.cn/105996.html原文链接:https://javaforall.cn