Java之日志框架举例详解

 更新时间:2026年01月28日 10:26:51   作者:Sylvia_feiyu  
Java中的日志框架提供了多种日志记录的解决方案,选择合适的日志框架可以提高程序的性能,增强代码的可读性和可维护性,这篇文章主要介绍了Java之日志框架的相关资料,需要的朋友可以参考下

日志技术

程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储。

日志技术具备的优势

  • 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。
  • 可以随时以开关的形式控制是否记录日志,无需修改源代码。

日志技术体系

日志规范接口【日志的实现框架设计的标准】

  • Commons Logging简称JCL
  • Simple Logging Facade for Java简称SLF4J

Commons Logging->SLF4J->Log4j->Logback(今天比较常用)

Logback日志框架

Logback是基于slf4j的日志规范实现的框架

Logback主要分为三个技术模块:

  • logback-core:logback-core 模块为其他两个模块奠定了基础 ,相当于入口,必须有。【基础模块】
  • logback-classic:它是log4j的一个改良版本,核心功能模块 , 同时它完整实现了slf4j API。
  • logback-access 模块与 Tomcat 和 Jetty 等 Servlet 容器集成,以提供 HTTP 访问日志功能

Logback的应用

使用java语言开发完成的程序,要给其他人使用,怎么办呢?

  • 把程序打包: xxxx.jar (jar文件是java文件压缩包)

要使用第三方开发好的程序,怎么办?

  • 在自己的项目工程下,导入xxx.jar包

使用Logback的步骤:

  1. 导入Logback所需的相关jar文件,并添加到项目资源库中
    • 在项目工程下新建lib文件夹,把logback需要的jar文件存放到该文件夹下
    • lib目录下的存储的jar文件,添加到当前项目资源库中【选中导入的三个资源右键点击:Add as Library】
  2. 把logback核心配置文件logback.xml【Logback日志框架的核心】,拷贝到当前项目的src目录下
  3. 在类中获取到Logger日志对象,使用日志对象中的API方法记录需要的操作信息
public static final Logger LOGGER = LoggerFactory.getLogger("哪一个类的日志");
import org.slf4j.LoggerFactory;


import org.slf4j.Logger;//注意不要导错包

public class LogbackDemo1 {
    //获取到一个Logger对象(使用日志对象记录相关操作)
    private static final Logger logger = (Logger) LoggerFactory.getLogger("LockbackDemo1类");
    public static void main(String[] args) {
//        System.out.println("进入到main方法执行程序...");
        logger.info("进入到main方法执行程序...");
//        System.out.println("调用show方法执行");
        logger.info("调用show方法执行");
        show();
    }
    public static void show(){
//        System.out.println("show方法开始执行了");
        logger.info("show方法开始执行了");
    }
}
控制台运行结果:
2026-01-17 21:43:39.613 [INFO ]  LockbackDemo1类 [main] : 进入到main方法执行程序...
2026-01-17 21:43:39.615 [INFO ]  LockbackDemo1类 [main] : 调用show方法执行
2026-01-17 21:43:39.615 [INFO ]  LockbackDemo1类 [main] : show方法开始执行了

上面的代码不仅会在控制台上输出

还会在电脑的C盘中自动创建一个文件夹,在文件夹中自动创建一个文本文档记录程序的运行结果如图:

Logback使用细节

Logback日志框架的核心:logback.xml

  • xml文件

Logback日志输出位置、格式设置

  • 通过logback.xml 中的标签可以设置输出位置和日志信息的详细格式。
  • 通常可以设置2个日志输出位置:一个是控制台、一个是系统文件中

输出到控制台的配置标志【记住"CONSOLE"】

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

输出到系统文件的配置标志【记住"FILE"】

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

如果我们不想让代码输出到控制台或者文件中,我们可以将logback.xml对应的输出代码给注释掉就好了

Logback日志级别(从大到小):

  1. error //错误
  2. warn //警告
  3. info //信息
  4. debug //调试
  5. trace //追踪(例:追踪用户行为轨迹)

作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。

ALL 和 OFF分别是打开全部日志信息,及关闭全部日志信息。

<!--控制输出日志的级别-->
    <root level="ALL">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE" />
    </root>

总结 

到此这篇关于Java之日志框架的文章就介绍到这了,更多相关Java日志框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Javaweb resin4如何配置端口虚拟目录

    Javaweb resin4如何配置端口虚拟目录

    这篇文章主要介绍了Javaweb resin4如何配置端口虚拟目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot自动配置实现流程详细分析

    SpringBoot自动配置实现流程详细分析

    这篇文章主要介绍了SpringBoot自动配置原理分析,SpringBoot是我们经常使用的框架,那么你能不能针对SpringBoot实现自动配置做一个详细的介绍。如果可以的话,能不能画一下实现自动配置的流程图。牵扯到哪些关键类,以及哪些关键点
    2022-12-12
  • Springboot中@Value的使用详解

    Springboot中@Value的使用详解

    这篇文章主要介绍了Springboot中@Value的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • spring Roo安装使用简介

    spring Roo安装使用简介

    这篇文章主要介绍了spring Roo安装使用简介,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Java异常处理try catch的基本用法

    Java异常处理try catch的基本用法

    try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理。最后执行finally之中的代码。无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。
    2021-12-12
  • Springboot 1.5.7整合Kafka-client代码示例

    Springboot 1.5.7整合Kafka-client代码示例

    这篇文章主要介绍了Springboot 1.5.7整合Kafka-client代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Spring Boot应用Docker化的步骤详解

    Spring Boot应用Docker化的步骤详解

    这篇文章主要给大家介绍了关于Spring Boot应用Docker化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • Java深入探究关键字abstract的使用

    Java深入探究关键字abstract的使用

    如果一个方法使用 abstract 来修饰,则说明该方法是抽象方法,抽象方法只有声明没有实现。需要注意的是 abstract 关键字只能用于普通方法,不能用于 static 方法或者构造方法中
    2022-05-05
  • spring如何动态指定具体实现类

    spring如何动态指定具体实现类

    这篇文章主要为大家详细介绍了spring如何动态指定具体实现类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Java实现手写乞丐版线程池的示例代码

    Java实现手写乞丐版线程池的示例代码

    在这篇文章当中我们主要介绍实现一个非常简易版的线程池,深入的去理解其中的原理,麻雀虽小,五脏俱全,感兴趣的小伙伴快跟随小编一起学习学习吧
    2022-10-10

最新评论