Java Logback日志框架概述及logback.xml详解

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

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


日志体系结构
Java Logback日志框架概述及logback.xml详解

Logback日志框架
Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好
Logback是基于slf4j的日志规范实现的框架。

Logback主要分为三个技术模块:
logback-core: logback-core 模块为其他两个模块奠定了基础,必须有。
logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API。
logback-access模块与Tomcat和Jetty 等servlet容器集成,以提供HTTP访问日志功能

使用Logback需要使用哪几个模块,各自的作用是什么。
slf4j-api:日志规范
logback-core:基础模块。
logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API
这些都可以去Logback或slf4j官方网站下载


使用Logback
Java Logback日志框架概述及logback.xml详解
完成这些步骤便可使用日志对象输出日志信息:

public class Test {
    //创建LogBack对象
    public static final Logger LOGGER=LoggerFactory.getLogger("Test.class");
    public static void main(String[] args) {
        try {
            LOGGER.debug("main开始执行");
            LOGGER.info("第二行日志");
            int a=10,b=0;
            LOGGER.trace("a="+a);
            LOGGER.trace("b="+b);
            System.out.println(a/b);
        } catch (Exception e) {
            e.printStackTrace();
            LOGGER.error("发生错误,"+e);
        }

    }
}

logback.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--
        CONSOLE :表示当前的日志信息是可以输出到控制台的。
    -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!--输出流对象 默认 System.out 改为 System.err则输出信息变成红色-->
        <target>System.out</target>
        <encoder>
            <!--格式化输出:%d表示日期,%-5level:级别比如DEBUG、INFO 从左显示5个字符宽度 %c在哪个class里打的日志
                %thread表示线程名比如main %msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level]  %c [%thread] : %msg%n</pattern>
        </encoder>
    </appender>

    <!-- File是输出的方向通向文件的 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!--日志输出路径-->
        <file>D:/Soft/Log/data.log</file>
        <!--指定日志文件拆分和压缩规则-->
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--通过指定压缩文件名称,来确定分割文件方式 一旦到达一定大小按照下面的格式来拆分文件压缩-->
            <fileNamePattern>D:/Soft/Log/data2-%d{yyyy-MM-dd}.log%i.gz</fileNamePattern>
            <!--文件拆分大小 即文件到了1MB就开辟第二个文件存储-->
            <maxFileSize>1MB</maxFileSize>
        </rollingPolicy>
    </appender>

    <!--
    level:用来设置打印级别,大小写无关,级别程度依次是:TRACE < DEBUG < INFO < WARN < ERROR   默认debug
    可以通过设置日志的输出级别来控制哪些日志信息输出或者不输出 只输出级别不低于设定级别的日志信息     ALL 和 OFF分别是打开全部日志信息和关闭全部
    <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
    -->
    <root level="ALL">
        <!-- 注意:如果这里不配置关联打印位置,该位置将不会记录日志-->
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

运行Test将在控制台和xml设置的文件路径中看到日志信息:

2023-06-15 16:15:49.941 [DEBUG]  Test.class [main] : main开始执行
2023-06-15 16:15:49.957 [INFO ]  Test.class [main] : 第二行日志
2023-06-15 16:15:49.964 [TRACE]  Test.class [main] : a=10
2023-06-15 16:15:49.964 [TRACE]  Test.class [main] : b=0
2023-06-15 16:15:49.966 [ERROR]  Test.class [main] : 发生错误,java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero


Java Logback日志框架概述及logback.xml详解

如果系统上线后只想记录一些错误的日志信息或者不想记录日志了,怎么办?
可以通过设置日志的输出级别来控制哪些日志信息输出或者不输出。

日志级别级别程度依次是:TRACE<DEBUG<INFO<WARN<ERROR;默认级别是debug (忽略大小写),对应其方法。
作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。
ALL和OFF分别是打开全部日志信息,及关闭全部日志信息。
具体在root标签的level属性中设置日志级别。文章来源地址https://www.toymoban.com/news/detail-499987.html

到了这里,关于Java Logback日志框架概述及logback.xml详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【日志技术——Logback日志框架】

    1.引出 我们通常展示信息使用的是输出语句,但它有弊端,只能在控制台展示信息,不能灵活的指定日志输出的位置(文件,数据库),想加入或取消日志,需要修改源代码 2.日志技术 可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中) 可以随

    2024年02月09日
    浏览(37)
  • java的springboot框架中使用logback日志框架使用RabbitHandler注解为什么获取不到消费的traceId信息?

    当使用 Logback 日志框架和 RabbitMQ 的 @RabbitHandler 注解时,如果无法获取消费的 traceId 信息,可能是因为在处理 RabbitMQ 消息时,没有正确地将 traceId 传递到日志中。 为了将 traceId 传递到日志中,你可以利用 MDC(Mapped Diagnostic Context)机制。MDC 是一个线程绑定的上下文容器,允许

    2024年02月09日
    浏览(48)
  • Logback是最好用的日志框架吗?Logback快速入门

    日志技术可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。随时以开关的形式控制是否记录日志,无需修改源代码,就可以取消或者记录信息。并且牛人或者第三方公司已经做好的日志记录实现代码,开发者可以直接拿来使用。 常见的日志框架

    2024年02月07日
    浏览(45)
  • 日志框架 --- Logback

    Logback是一个用于Java应用程序的日志框架,它由log4j框架的创始人Ceki Gülcü开发。logback是log4j框架的继承者和改进版,并提供了更好的性能、可扩展性和灵活性。与Log4j相比,Logback提供了更快的速度和更低的内存占用,这使得它成为大型企业级应用程序的理想选择。 Logback包括

    2024年02月08日
    浏览(40)
  • Logback日志框架配置使用

    一、简述 Logback一个通用、快速而又灵活的Java日志框架。主要分为三个模块组成 logback-core: 其他两个模块的基础模块 logback-classic: 由log4j的改良版本,完整实现了slf4j的API,所以可以很方便的更换成其他日志系统如log4j或者JDK14 Logging logback-access:访问模块和Servlet容器集成提

    2024年02月11日
    浏览(45)
  • spring整合logBack日志框架:

    SLF4J(Simple Logging Facade for Java)是一种日志规范,类似于JDBC,我们常用的日志log4j、logback等都实现了这个规范,所以我们可以直接使用SLF4J的规范来使用日志。 它们是同一个作者开发的,logback是重新编写的内核,在一些关键执行的路径上提升了10倍以上。它也支持了一些新的

    2024年02月12日
    浏览(42)
  • logback日志框架基本知识

    本文来说下logback日志框架基本知识 Spring Boot已经将logback做为默认集成的日志框架,全面了解学习是必然了。曾经log4j是流行的日志框架,现在已被它的继任者logback替代,logback更快,更小,更灵活。当然,如果你的项目中还在用System.out.println()来输出内容,那更是得行动起来

    2024年02月11日
    浏览(47)
  • Java日志框架JUL、Log4j、logback、log4j2使用

    随着软件系统的发展系统业务越来越多、逻辑越来越复杂、代码量越来越多,伴随着容易出现的bug也会越来越多,不论是开发测试阶段还是生产阶段都需要将这些错误及时的捕捉记录下来,方便解决这些问题,否则针对出现的异常无从下手;此时就需要一些日志框架来完成这

    2024年02月15日
    浏览(47)
  • MyBatis junit 日志框架logback

    JUnit是专门做单元测试的组件 !-- junit依赖 -- dependency     groupIdjunit/groupId     artifactIdjunit/artifactId     version4.13.2/version     scopetest/scope /dependency pom.xml test:        引入日志框架logback 引入日志框架的目的是为了看清楚mybatis执行的具体sql mybatis – MyBatis 3 | 配置 指定 MyBatis 所

    2024年02月09日
    浏览(38)
  • logback-spring.xml详解

    本文来写说下logback-spring.xml相关的知识与概念 对于xml日志文件的配置,大多数人第一次接触时有一种望而生畏的感觉,其实如果仔细分析,会发现核心的部分只有三个元素: appender、logger、root 。 通过上图我们可以清晰的了解整个xml文件的元素及功能。 其中configuration是根元

    2024年02月11日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包