Logback体系架构

Logback由logback-core、logback-classic和logback-access三个模块组成,提供灵活的日志记录。核心组件包括Logger、Appender和Layout,LoggerContext管理记录器层次结构。日志级别通过Logger的继承机制决定,Appender控制日志输出目的地,Layout格式化日志。Logback支持参数化日志记录以优化性能,并具备高效的执行流程和出色性能。
摘要由CSDN通过智能技术生成

本文翻译自:Logback Architecture

Logback的基本架构足够通用,以适用于不同的环境。目前,Logback分为三个模块,logback-core、logback-classic和logback-access。

core模块为其他两个模块奠定了基础。classic模块扩展了core模块,相当于log4j的一个显著改进版本。logback-classic原生实现了SLF4J API,可以和其他日志系统随意地来回切换,诸如log4j、JUL等。access模块与Servlet容器集成以提供HTTP访问日志的功能。

记录器、附着器、布局

Logback建立在三个主要类的基础上:Logger、Appender、Layout。三种类型的组件协同工作,使开发人员能够根据消息类型和级别记录消息,并在运行时控制这些消息的格式和报告位置。

Logger类是classic模块的一部分,Appender和Layout接口是core模块的一部分,core作为一个通用模块,没有记录器的概念。

Logger上下文

任何日志API优于普通System.out.println的优势在于它能够禁用某些日志语句,与此同时让其他的语句不受影响地打印。该功能假设日志空间(即所有可能的日志记录语句的空间)根据某些开发人员选择的标准进行分类。在classic模块中,分类是记录器的固有部分。每一个记录器都附加到一个LoggerContext上,该LoggerContext负责生成记录器并将它们安排在层次结构树中。

记录器是命名的实体,名字大小写敏感并且遵循层次命名规则:

Named Hierarchy

A logger is said to be an ancestor of another logger if its name followed by a dot is a prefix of the descendant logger name. A logger is said to be a parent of a child logger if there are no ancestors between itself and the descendant logger.

例如:名为com.foo的记录器是名为com.foo.bar记录器的父记录器。

根记录器在记录器层次结构的顶端,它是每个层级的一部分。可以通过名字来检索记录器,如下:

Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);

所有的记录器都可以通过org.slf4j.LoggerFactory类的静态方法getLogger来检索,方法以期望的记录器名字作为参数。Logger接口的部分基础方法如下:

package org.slf4j;
public interface Logger {
   
    // Printing methods
    public void trace(String message);
    public void debug(String message);
    public void info(String message);
    public void warn(String message);
    public void error(String message);
}<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值