首页 > 其他分享 >Logback日志框架

Logback日志框架

时间:2024-05-06 21:45:24浏览次数:18  
标签:logger log 框架 org Logger Logback 日志

简介

Logback是一个成熟和稳定的日志框架,是Log4j框架的继承者,具有更好的性能和更加丰富的配置选项。它可以与Spring Boot框架集成,实现日志输出到控制台或者文件。

基本概念

Logback由三个模块组成

  • logback-core:提供了更低级别的功能,最基本的日志系统。
  • logback-classic:提供了更高级别的功能,比如SLF4J API的实现,支持MDC(Mapped Diagnostic Contexts)。
  • logback-access:提供了用于HTTP访问日志的功能,包括访问日志和基于XML的HTTP访问日志。

Logback使用Logger来记录和输出日志,LoggerContext是Logger的容器,主要维护Logger和Appender的关系。

Appender用于将日志输出到不同的地方,比如控制台或者文件。

配置文件

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <!-- 输出到控制台 -->
  <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <!-- 输出到文件 -->
  <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>log/demo.log</file>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>log/demo.%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
  </appender>

  <!-- 设置日志输出级别 -->
  <root level="INFO">
    <appender-ref ref="console" />
    <appender-ref ref="file" />
  </root>

</configuration>

Logback的日志级别

Logback定义了五个日志级别,按照从低到高的顺序为TRACE、DEBUG、INFO、WARN、ERROR。在实际应用中,应根据需要选择适当的日志级别。

import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
  
public class Slf4jExample {  
  
    private static final Logger logger = LoggerFactory.getLogger(MySlf4jExample.class);  
  
    public static void main(String[] args) {  
        logger.info("This is an info message.");  
        logger.debug("This is a debug message.");  
        logger.warn("This is a warning message.");  
        logger.error("This is an error message.");  
    }  
}

RollingFileAppender

RollingFileAppender是一种按照一定规则切分日志文件的Appender。它可以按照时间、文件大小等规则来切分日志文件。

<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>logs/demo.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>logs/demo.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
    <maxFileSize>10MB</maxFileSize>
    <maxHistory>30</maxHistory>
  </rollingPolicy>
  <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

Springboot使用Logback

依赖注入

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

创建配置文件

建 Logback 的配置文件,通常为 logback.xml,并将其放置在类路径下(src/main/resources)。

使用日志

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

public class LogbackTest {
    // 会使用 Logback 来创建一个 Logger 实例
    private static final Logger logger = LoggerFactory.getLogger(LogbackTest.class);
    public static void main(String[] args) {
        logger.info("Hello, world!");
    }
}

标签:logger,log,框架,org,Logger,Logback,日志
From: https://www.cnblogs.com/yuey6670/p/18175809

相关文章

  • qt停靠窗口 使用qt提供的停靠窗口框架 qtadvanceddocking (保存当前的位置信息,再次打开
     cmakeLists.txt:cmake_minimum_required(VERSION3.5)project(ToolkitVERSION"1.0.0.0"LANGUAGESCXX)option(version1.0.0.0)set(CMAKE_AUTOUICON)set(CMAKE_AUTOMOCON)set(CMAKE_AUTORCCON)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDAR......
  • Kafka源码分析(四) - Server端-请求处理框架
    系列文章目录https://zhuanlan.zhihu.com/p/367683572一.总体结构先给一张概览图:服务端请求处理过程涉及到两个模块:kafka.network和kafka.server。1.1kafka.network该包是kafka底层模块,提供了服务端NIO通信能力基础。有4个核心类:SocketServer、Acceptor、Processor、Req......
  • Java 集合框架的collection接口和map接口
    集合框架中整体的架构分为2类:Collection接口和Map接口Collection接口:用于存储单个对象的典型的实现类:List--->ArryListLinkedListSet--->HashSetThreeSetMap接口:用于存储K-V键值对双对象的典型的实现类:HashMap一、ArrayList1.1、简介数据存储:底层采用的是数组,但是采......
  • 手写Spring框架
    1.手写Spring框架@目录1.手写Spring框架每博一文案2.反射机制的回顾3.开始手写Spring框架3.1第一步:使用IDE创建模块myspring3.2第二步:准备好我们要管理的Bean3.3第三步:准备myspring.xml配置文件3.4第四步:编写ApplicationContext接口3.5第五步:编写ClassPathXmlApplic......
  • 51单片机程序框架之矩阵按键
    /******************************************************************************此程序是依据吴坚鸿程序框架,在普中51A2单片机开发板上的程序练习程序目标:4*4矩阵按键*******************************************************************************/#include<REG51.H......
  • 前端框架开发之Niu框架——从零学框架的小白
    起因:从2018年6月一直到我重新提笔,6年时间。这六年时间,我见证了IT的兴衰,见证了小众框架LayUI框架的重新更新,见证了vue、angular、react等框架的主流。----博客园老牛大讲堂 初衷:今年我突发灵感,想要设计一个网站,作为程序员却"提笔忘字",就连最基本的css也变得陌生,我网上翻找大量......
  • Django-rest-framework框架
    【一】drf入门规范【二】序列化组件【三】请求与响应【四】视图组件【五】路由组件【六】认证组件【七】权限组件【八】频率组件【九】过滤与排序【十】异常捕获【十一】分页组件【十二】生成接口文档【十三】序列化类源码分析【十四】JWT介绍【十五】simple-jwt简......
  • 为什么我不选择React、Vue.js作为SAAS网站的前端框架
    引言“道”在中国哲学中,是一个重要的概念,表示“终极真理”。“道”这一概念,不单为哲学流派诸子百家所重视,也被宗教流派道教等所使用。大道至简的意思就是大道理是极其简单的,简单到一两句话就能说明白。所谓“真传一句话,假传万卷书”。正文在开启独立创作之路时,我也考虑过各种......
  • 在Linux中,如何进行日志审计?
    在Linux系统中,日志审计是确保系统安全性的重要部分,它可以帮助系统管理员监控和记录系统中发生的各种事件。以下是进行日志审计的步骤和一些常用的工具:1.启用系统审计Linux系统中的审计系统通常由auditd守护进程提供。首先,确保auditd已经安装并启动:sudoapt-getinstallauditd......
  • 51单片机程序框架之短按长按
    /******************************************************************************此程序是依据吴坚鸿程序框架,在普中51A2单片机开发板上的程序练习程序目标:按键长按与短按,长按LED亮,短按LED灭****************************************************************************......