首页 > 其他分享 >SLF4J和Logback日志框架详解

SLF4J和Logback日志框架详解

时间:2023-03-28 14:35:44浏览次数:40  
标签:logging 框架 SLF4J slf4j 日志 Logback


SLF4J和Logback日志框架详解

作者:chszs

本文讲述SLF4J和Logback日志框架。

SLF4J和Logback日志框架详解_日志框架

  

SLF4J和Logback日志框架详解_日志框架_02


SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。



LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序。


SLF4J

SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。



SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。


Logback

Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。



由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。



注意一个重要的特性,Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以从JMX控制台直接操作,无需重启应用程序。



此外,Logback的异常堆栈跟踪的信息,有助于调试。


java.lang.NullPointerException: null
at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na]
at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]


SLF4J API用法

1. 从org.slf4j包导入Logger和LoggerFactory

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


2. 声明日志类

private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);


3. 使用debug、warn、info、error方法并跟踪适合的参数。

所有的方法默认都使用字符串作为输入。

logger.info("This is sample info statement");


SLF4J结合Logback

在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……


<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.0.7</version>
</dependency>


SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。


SLF4J结合Log4j

在pom.xml包含下面的依赖


<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.2</version>
</dependency>


SLF4J结合JUL (java.util.logging)

在pom.xml包含下面的依赖

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-jdk14</artifactId>
  <version>1.7.2</version>
</dependency>




标签:logging,框架,SLF4J,slf4j,日志,Logback
From: https://blog.51cto.com/prettycms/6154772

相关文章

  • Web日志分析
    IIS中间件日志日志文件位置:C:\\WINDOWS\\system32\\LogFiles日志文件的格式为:“ex+年份的末两位数Apache中间件日志Tomcat中间件日志Weblogic中间件日志Nginx中间件......
  • 注入了一个记录日志的接口,启动微服务工程的时候报错了:No qualifying bean of type 'co
    【问题描述】Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'monitorAreaServiceImpl':Injectionofresource......
  • JVM系统优化实践(12):GC日志分析
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~了解了基本的G1垃圾回收机制以后,就可以结合实际日志分析一下它的日志内容了,以后再遇到问题自己也能看懂。首先要说明一下......
  • 第一部分:介绍 Spdlog 日志库
    什么是Spdlog日志库Spdlog是一个C++的日志库,它具有高效、易用、跨平台等特点。它可以写入到控制台、文件等输出目标,支持多种日志级别、多线程安全等功能,非常适合在C......
  • ABP VNext 的日志机制 + SeriLog
    **ABPVNext的日志机制**正用ABPVNext做个系统,由于框架默认带来日志处理机制,开发阶段基本能用,也一直没有去动它,快要上线了,思考了一下正式环境的日志管理流程,由于系统不......
  • klog ,gin 记录日志到文件
    老遇到,记录一下 klog.LogToStderr(false) logFile,err:=os.Create("api.log") iferr!=nil{ fmt.Println(err) os.Exit(1) } klog.SetOutput(io.MultiWrite......
  • 使用SLF4J和Logback23
    其实SLF4J类似于CommonsLogging,也是一个日志接口,而Logback类似于Log4j,是一个日志的实现。为什么有了CommonsLogging和Log4j,又会蹦出来SLF4J和Logback?这是因为Java有着非常......
  • Python 日志记录
    #coding=utf-8importosimportsys,pdbimportlogbook#pipinstallLogbookfromlogbookimportLogger,StreamHandler,FileHandler,TimedRotatingFileHandlerfrom......
  • 2023最新ELK日志平台(elasticsearch+logstash+kibana)搭建
    前言去年公司由于不断发展,内部自研系统越来越多,所以后来搭建了一个日志收集平台,并将日志收集功能以二方包形式引入自研系统,避免每个自研系统都要建立一套自己的日志模块,节......
  • linux环境下tomcat日志切割
    1、打开Tomcat的配置文件catalina.sh(或catalina.bat,取决于你的操作系统),在其中找到以下配置项:#LoggingJAVA_OPTS="$JAVA_OPTS-Djava.util.logging.manager=org.apache......