学习Logback

学习Logback

目录

概念简介

实用工具

使用说明

配置说明


  • 概念简介

SLF4J是一个简单日志门面(Simple Logging Facade),不同于我们平时用的java.util.logging、log4j等日志框架(logging frameworks),日志门面是介于日志框架和我们业务代码之间的一个抽象层,用户编码时可以调用日志门面的方法,日志门面再根据配置的日志框架调用其方法。其实就是利用门面模式,隐藏了具体实现。SLF4J的官方用户手册除了提到每个版本的兼容性、特性等,还有一些简单案例和代码可供参考。

Logback是一个日志框架,实现了SLF4J接口,官方定位是超越Log4j。它分为三个模块,其中的logback-access模块还支持通过servlet容器的http接口访问日志系统。Logback还有三个重要组件(Logger, Appenders and Layouts)。官方文档大约150多页,学习时只要记得关键知识点即可,具体使用时再根据知识点翻阅文档细节。

参阅:https://www.liaoxuefeng.com/wiki/1252599548343744/1264739155914176

参阅:https://blog.csdn.net/qq_38136705/article/details/81055277

参阅:http://www.slf4j.org/manual.html

参阅:http://logback.qos.ch/index.html

  • 实用工具

logback官方配置转换器,可将log4j.properties转logback.xml

slf4j官方迁移器,将其他日志系统的程序迁移到slf4j下

  • 使用案例

1.maven引入SLF4J和Logback

2.业务代码

package com.example;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Test {

    /**
     * 初始化
     */
    private static Logger logger = LoggerFactory.getLogger(Test.class);

    public static void main(String[] args) {
        logger.debug("start.");
        Test test = new Test();
        logger.info(String.valueOf(test.add(1,2)));
        logger.debug("end.");
    }

    private int add(int a, int b){
        return a + b;
    }

}

3.控制台打印成功

 

由于没有指定配置文件,logback使用的是默认配置。如果需要切换其他例如log4j2等日志框架,替换maven包和配置文件即可,不会涉及到业务代码的改动。

 

  • 配置说明

官方配置说明文档http://logback.qos.ch/manual/index.html

Logback的初始化步骤为:

1.在classpath下依次寻找logback-test.xml、logback.groovy、logback.xml

2.(不懂,贴原文)If no such file is found, service-provider loading facility (introduced in JDK 1.6) is used to resolve the implementation of com.qos.logback.classic.spi.Configurator interface by looking up the file META-INF\services\ch.qos.logback.classic.spi.Configurator in the class path. Its contents should specify the fully qualified class name of the desired Configurator implementation.

3.以上都失败时,将默认使用ch.qos.logback.classic.BasicConfigurator的配置

速记

1.Logger之间有继承关系,会影响日志级别

2.官方用“大小”描述日志级别,个人倾向用“粗细”描述,即 ERROR>WARN>INFO>DEBUG>TRACE,ERROR最粗略,TRACE最细致。如果配置为INFO级别,则ERROR、WARN、INFO的日志打印都将生效

3.参数构建有性能开销,因此官方推荐参数化日志,即log.info(“Entry number: ” + i + " is " + entry[i])改为log.info(“Entry number: {} is {}”, i, entry[i])

4.组件Logger是核心,关系日志级别的继承传递以及调用等;组件Appenders则代表日志输出的目的地,如控制台、文件等;组件Layouts用于配置日志的样式

5.组件Appender种类繁多,支持邮件、日志服务器、网络、异步等等日志分发方式,主要控制日志输出规则;Appender中的Encoder替代老的Layout,主要用于日志样式配置;Appender中的Policy则用于指定日志滚动规则(“日志滚动”即日志的生成规则,如按天按月滚动),如按月、按大小滚动;组件Logger配置项较少,但根据name指定的包名含有继承特性(继承上级Logger的日志Level和Appender,默认继承root)

参阅:https://blog.csdn.net/qq_24607837/article/details/83785878

参阅:https://www.jianshu.com/p/38e8c41dcd0d

参阅:http://logback.qos.ch/manual/architecture.html

参阅:http://logback.qos.ch/manual/configuration.html

 

结语

日志系统包括配置大部分情况下只要会用就好,留点精力学别的吧。

后续有时间的话,将写一个web页面用于简易的logback配置文件生成,毕竟鼠标点两下获得想要的配置总比敲一堆不明所以的xml配置好,高级用法就只能在此配置基础自行修改了。

【+202007051550】使用tool.yangmin.space/logback可以完成大部分基础配置

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值