【原创】logger深入浅出

一、logger的前世今生

  1. 最初Apache- logj4j 【以前的主流】
  2. jdk4以后也出了java.util.logging 进行争抢市场
  3. apache又出了 common logging做兼容
  4. log4j的原作者做了更优雅的标准 slf4j 【门面】,实现就是logback【现在比较主流,也是springboot 默认的 logger的实现】
  5. 再log4j这个apache又开发了 log4j2 也类似slf4j,是一个标准。

从 排序 1-5,我们可以看到 logger 的市场的抢夺。总结来说,一共有3方公司在抢夺市场:
1、 apache 2、 java官方 或者说之前的 sun公司 3 离职apache的log4j原作者
然后,总体来说,市场上还是以 slf4j标准 为主,最重要的是他的兼容性,整合了jdk和apachede的logger的标准,各个logger基本都遵循这个标准,因此本文也主要以slf4j标准为主,你学会了slf4j标准,基本对于logger就可以玩了转了。

二、quick start

现在java主流都是用springboot,springboot默认的都是slf4j标准,logback实现为主。

Spring Boot默认日志系统

Spring Boot默认使用LogBack日志系统,如果不需要更改为其他日志系统如Log4j2等,则无需多余的配置,LogBack默认将日志打印到控制台上。

如果要使用LogBack,原则上是需要添加dependency依赖的

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId></pre>

但是因为新建的Spring Boot项目一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-logging的依赖,所以,无需额外添加依赖。

简单使用

package com.jackie.springbootdemo.config;

import com.jackie.springbootdemo.model.Person;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration 
public class LogConfig {
    private static final Logger LOG = LoggerFactory.getLogger(LogConfig.class);

    @Bean
    public Person logMethod() {
        LOG.info("==========print log==========");
        return new Person();
    }
}

日志级别比较

TRACE < DEBUG < INFO < WARN < ERROR < FATAL

三、浅谈配置文件及API

如何定制自己的日志格式

logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n 
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n

日志格式的通配符解释

这里截了一些图供 大家参考
在这里插入图片描述
在这里插入图片描述
再贴一个自己建议的

%d{yyyy/MM/dd-HH:mm:ss} [%thread] [%-5level] %logger- %msg%n 

这个通配符基本是一个标准,不管你用log4j,还是logback, 以及 log4j2
都同样适用。这样标准统一也让我们节省了无畏的学习成本

四、深入源码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值