上面上常见的日志框架有:JUL(java.util.logging)、JCL(2014停更)、Jboss-logging、Log4j、Logback、SLF4j、Log4j2
Spring框架默认使用:JCL
但SpringBoot选择了:SLF4j+logback 的日志框架
预写先知
日志级别从下到大:trace、debug、info、warn、error
也就是说:日志级别是Error 可打印 trace、debug、info、warn、error级别的日志
如果日志级别设置是:info,则日志仅记录 trace、debug、info级别的日志,像warn、error则不会记录!
如何使用?
1、声明日志对象,方便后面调用
// 导包
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// 声明一个日志记录器对象,并指定类信息
public static final Logger LOGGER = LoggerFactory.getLogger(Diytest.class);
2、正式调用
@Test
public void TestLogInfo(){
// 打印日志信息
LOGGER.error("error");
LOGGER.warn("warn");
LOGGER.info("默认日志级别是 info");
LOGGER.debug("debug");
LOGGER.trace("trace 翻译过来是追踪");
// 使用Log4j2 使用桥接器切换为slf4j 门面和logback实现
org.apache.logging.log4j.Logger log4j = LogManager.getLogger(Diytest.class);
log4j.info("我是Log4j2的日志 info");
}
3、测试输出
2022-02-21 11:49:49.795 ERROR 29324 --- [ main] com.xunliao.zhenliaowms.Diytest : error
2022-02-21 11:49:49.795 WARN 29324 --- [ main] com.xunliao.zhenliaowms.Diytest : warn
2022-02-21 11:49:49.795 INFO 29324 --- [ main] com.xunliao.zhenliaowms.Diytest : 默认日志级别是 info
2022-02-21 11:49:49.798 INFO 29324 --- [ main] com.xunliao.zhenliaowms.Diytest : 我说Log4j的日志 info
设置 日志级别 可根据不同包 打印不同级别的日志
# 自定义Logger对象的日志级别
# logging.level 后面跟.包名 其子包之后都会是此日志级别 如:
logging.level.com.zanglikun=trace
测试输出
2022-02-21 11:52:54.305 ERROR 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : error
2022-02-21 11:52:54.305 WARN 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : warn
2022-02-21 11:52:54.305 INFO 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : 默认日志级别是 info
2022-02-21 11:52:54.305 DEBUG 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : debug
2022-02-21 11:52:54.305 TRACE 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : trace 翻译过来是追踪
2022-02-21 11:52:54.308 INFO 4288 --- [ main] com.xunliao.zhenliaowms.Diytest : 我是Log4j2的日志 info
去配置文件application.properties 指定日志具体打印的信息格式
# 指定控制台输出消息格式:日志级别 时间 线程名 日志信息 换行
logging.pattern.console=[%-5level] %d{yyyy-MM-dd HH-mm-ss} %c [%thread] ==== %msg %n
测试输出
[ERROR] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== error
[WARN ] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== warn
[INFO ] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== 默认日志级别是 info
[DEBUG] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== debug
[TRACE] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== trace 翻译过来是追踪
[INFO ] 2022-02-21 11-58-40 com.xunliao.zhenliaowms.Diytest [main] ==== 我是Log4j2的日志 info
基本常用就到这了。
不过,针对Slf4j 我更喜欢@Slf4j注解使用
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Abc {
}
具体业务调用
// 日志字符串内 可使用 占位符 {}
log.info("{}成功扣除{}钻石", account, prize);
完结!
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤