SLF4J日志框架在项目中使用

这篇具有很好参考价值的文章主要介绍了SLF4J日志框架在项目中使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

SLF4J全称“Simple Logging Facade for Java”,作为各种日志框架的简单门面。例如: java.util.logging、logback 、 reload4j等。只需要切换日志框架的jar包依赖就可以切换日志框架。

SLF4J支持的日志框架包含如下:

  • log4j:常用的日志框架,需要有配置文件log4j.properties
  • logback:可以通过logback.xml修改日志输出配置,如果没有logback.xml则使用默认配置
  • java.util.logging:JDK 1.4 logging
  • simple:简单实现,只显示INFO以上级别,实际使用System.err输出
  • jcl:Jakarta Commons Logging
  • nop:无提示不显示所有日志

使用示例

1、引入依赖jar包

SLF4J目前已将发布了2.X版本,这里以经常用的1.7.36版本为例。

创建简单的maven工程,并引入依赖。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.36</version>
</dependency>
<!-- log4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-reload4j</artifactId>
    <version>1.7.36</version>
</dependency>

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

<!-- 简单实现,只显示INFO以上级别,实际使用System.err输出
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
</dependency> -->

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

<!-- nop 无提示不显示所有日志
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>1.7.36</version>
</dependency>-->

<!-- Jakarta Commons Logging
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jcl</artifactId>
    <version>1.7.36</version>
</dependency> -->

2、代码使用示例

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

public class LogTest {
    private final static Logger log = LoggerFactory.getLogger(LogTest.class);
    public static void main(String[] args) {
        log.info("这个是测试日志输出,{}","Hello World");
    }
}

1)如果使用log4j需要添加配置文件log4j.properties,如果没有该配置文件,无法打印日志,简单内容如下:

# Root logger option
log4j.rootLogger=INFO,file,stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{2}:%L - %m%n


# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log/output-log4j.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{2}:%L - %m%n

2)如果使用logback,也可以添加配置文件logback.xml,如果没有该配置文件,就使用默认配置,内容如下:

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

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <file>log/output-logback.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
            <fileNamePattern>log/output.log.%i</fileNamePattern>
        </rollingPolicy>
        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>1MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

3、测试打印内容

1)log4j

2023-03-10 14:55:54 [main] INFO  demo.LogTest:9 - 这个是测试日志输出,Hello World
2023-03-10 14:55:56 [main] INFO  demo.LogTest:9 - 这个是测试日志输出,Hello World

2)logback

2023-03-10 14:53:21 [main] INFO cn.hj.sl4j.demo.LogTest - 这个是测试日志输出,Hello World
2023-03-10 14:53:33 [main] INFO cn.hj.sl4j.demo.LogTest - 这个是测试日志输出,Hello World

3)slf4j-simple

[main] INFO cn.hj.sl4j.demo.LogTest - 这个是测试日志输出,Hello World

4)slf4j-jdk14

三月 10, 2023 3:00:53 下午 cn.hj.sl4j.demo.LogTest main
信息: 这个是测试日志输出,Hello World

5)jcl

三月 10, 2023 3:01:31 下午 org.slf4j.impl.JCLLoggerAdapter info
信息: 这个是测试日志输出,Hello World

总结

SLF4J是一个门面日志框架,统一了日志的使用标准,如果要切换不同的日志实现只需要修改对应的实现依赖jar包就可以,不需要修改java代码文章来源地址https://www.toymoban.com/news/detail-432234.html

到了这里,关于SLF4J日志框架在项目中使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • SLF4J门面日志框架源码探索 | 京东云技术团队

    SLF4J门面日志框架源码探索 | 京东云技术团队

    SLF4J即Simple Logging Facade for Java,它提供了Java中所有日志框架的简单外观或抽象。因此,它使用户能够使用单个依赖项处理任何日志框架,例如:Log4j,Logback和JUL(java.util.logging)。通过在类路径中插入适当的 jar 文件(绑定),可以在部署时插入所需的日志框架。如果要更换日志

    2024年02月11日
    浏览(9)
  • 如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

    如何在 Spring Boot 中集成日志框架 SLF4J、Log4j

    笔者的操作环境: Spring Cloud Alibaba:2022.0.0.0-RC2 Spring Cloud:2022.0.0 Spring Boot:3.0.2 Nacos 2.2.3 Maven 3.8.3 JDK 17.0.7 IntelliJ IDEA 2022.3.1 (Ultimate Edition) 因为 Spring Boot 已经内置了 Logback,所以需要先将 Logback 移除。移除的方法是在 Spring Boot 依赖包中移除 Logback。 比如就像这样: 【踩坑提

    2024年02月13日
    浏览(7)
  • 学习SpringBoot使用slf4j日志并输出到文件中

    学习SpringBoot使用slf4j日志并输出到文件中

    再使用前,先了解一下介绍,否则你也不会用! 1、日志级别 SLF4J将日志分为trace、debug、info、warn、error五个级别,每个级别对应记录不同的日志,对应不同的使用场景。 日志级别从低到高分为 TRACE DEBUG INFO WARN ERROR FATAL 如果设置为 WARN ,则低于 WARN 的信息都不会输出 一般设

    2024年02月06日
    浏览(6)
  • 应用中日志的优雅使用(整合log4j2与SLF4J)

    应用中不可直接使用日志系统( Log4j、 Logback) 中的 API,而应依赖使用日志框架( SLF4J、 JCL–Jakarta Commons Logging) 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 日志框架( SLF4J、 JCL–Jakarta Commons Logging)的使用方式(推荐使用 SLF4J) 所有

    2023年04月09日
    浏览(9)
  • JAVA中使用log4j及slf4j进行日志输出的方法

    JAVA中使用log4j及slf4j进行日志输出的方法

    JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法。 一、下载log4j的架包,并导入项目中,如下: 二、创建log4j.properties配置文件 1、log4j配置文件的位置: (1)如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下

    2024年02月07日
    浏览(8)
  • SpringBoot集成slf4j日志系统

    SpringBoot集成slf4j日志系统

    作者平台: | CSDN:blog.csdn.net/qq_4115394… | 掘金:juejin.cn/user/651387… | 知乎:www.zhihu.com/people/1024… | GitHub:github.com/JiangXia-10… | 微信公众号:1024笔记 本文大约4777字,预计阅读时长11分钟 日志系统作为一个应用系统的重要部分之一,它能够有助于我们在系统在线上环境中如果

    2023年04月19日
    浏览(7)
  • Spring Boot 日志配置(Slf4j)

    Spring Boot 日志配置(Slf4j)

    SLF4J与Logback简介 Java日志框架众多,常用的有java.util.logging, log4j, logback,commons-logging等。 SLF4J (Simple Logging Facade For Java),它是一个针对于各类Java日志框架的统一Facade抽象。SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定。 LogBack是由log4j的创始人开发的新

    2024年02月16日
    浏览(9)
  • 日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)

    文中代码示例获取:关注【 Qin的学习营地 】,回复【 日志框架梳理 】 在了解日志框架时总会列出一系列框架:Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2,这么多框架让人感到混乱,该怎么选取、该怎么用。接下来,让我们逐步理清这些框架及之间的关系。 首先来了解日志

    2024年02月05日
    浏览(20)
  • Spring Boot日志:SLF4J和Logback

    Spring Boot日志:SLF4J和Logback

    SpringBoot中的日志库分为两种: 实现库:提供具体的日志实现,例如日志级别的控制、打印格式、输出目标等。 外观库:自身不提供日志实现,而是对其他日志库进行封装,从而方便使用。基于外观模式实现。 关于外观库的出现,可设想一下:现在有多种日志库,每一种接口

    2024年02月15日
    浏览(23)
  • 6.2 SpringBoot日志入门实战 SLF4J + Logback

    6.2 SpringBoot日志入门实战 SLF4J + Logback

    如果你是一位Java开发者,那么你肯定知道Log日志的重要性,它是我们了解程序内部运行真像,分析和定位问题的最直接手段!对于任何企业级的程序,日志记录是必须的! 在SpringBoot框架中,集成了常用的日志框架,包括SLF4J、Logback、Log4j2、Java Util Logging等,其中,Logback是

    2024年02月08日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包