关于logback.xml和logback-spring.xml的区别及说明

 更新时间:2024年06月17日 15:02:48   作者:tony_bfx  
这篇文章主要介绍了关于logback.xml和logback-spring.xml的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

logback.xml和logback-spring.xml的区别

我们使用SLF4J框架记录日志时,会用到 logback.xml 和 logback-spring.xml 两个不同的配置文件。

logback-spring.xml 只有在Spring应用程序运行的时候才生效,即带有@SpringBootApplication注解的类启动的时候才会生效。

如果不是Spring应用程序,而是一个main方法或者一个JUnit的测试方法,要用 logback.xml 来配置。如果没有logback.xml这个文件,或者logback.xml放的路径不对,则日志仍然是会打印出来的,而且会按照默认的DEBUG级别打印。这样一运行程序会有大量的DEBUG信息,把真正有用的信息都淹没了。

我们要想把这些烦人的DEBUG信息关掉,禁止它输出DEBUG信息,需要自己创建一个名为 logback.xml 的文件。一般Spring Boot项目里面已经带有一个 logback-spring.xml 文件了,最省事的方法是直接把 logback-spring.xml 复制一份,名字改成 logback.xml 就行,里面所有的配置语法都不用改。因为logback-spring和logback除了文件名不同,里面写法是完全一样的。

要想把DEBUG信息关掉,找到root level="DEBUG"这一段,改成ERROR。

<!-- 日志输出级别 -->
	<root level="ERROR">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="FILE" />
		<appender-ref ref="HTML" />
		<appender-ref ref="FILE_HTML" />
	</root>

logback-spring和logback除了文件名不同,存放的位置也是不同的。

logback-spring.xml存放的位置是在SpringApplication主类所在的项目的resources目录,也就是application.yml或者application.properties所在的目录。

logback.xml存放的位置是在你启动的那个类所在的项目的resources目录。

而且这个resources目录,原本也是没有的,我们手工创建了resources目录之后,还要在IDEA的项目属性里面手工把它指定为资源目录。

分享一个logback.xml/logback-spring.xml(实用)

效果图

代码

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <!-- 注意:若需要用 spring 扩展 profile 支持,则文件名应为 logback-spring.xml,而不是 logback.xml。 -->
    <springProperty scope="context" name="spring.application.name" source="spring.application.name"/>
    <springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active"/>


    <contextName>logback</contextName>
    <property name="log.path" value="/home/logs/app/${spring.profiles.active}/${spring.application.name}.log"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [%15.15(%thread)] %cyan(%-40.40(%logger{40})) : %-30.30(\(%file:%line\)) : %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
            <totalSizeCap>10GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%15.15(%thread)] %-40.40(%logger{40}) : %3(%line) : %msg%n</pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

</configuration>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用MDC实现日志链路跟踪

    使用MDC实现日志链路跟踪

    这篇文章主要介绍了使用MDC实现日志链路跟踪,在微服务环境中,我们经常使用Skywalking、CAT等去实现整体请求链路的追踪,但是这个整体运维成本高,架构复杂,我们来使用MDC通过Log来实现一个轻量级的会话事务跟踪功能,下面就来看看具体的过程吧,需要的朋友可以参考一下
    2022-01-01
  • Java实现List集合转树形结构的示例详解

    Java实现List集合转树形结构的示例详解

    在开发中,我们通常需要将从数据库中查询的集合数据转换成类似文件系统一样的树形集合。本文将利用Java语言实现这一功能,感兴趣的可以了解一下
    2022-08-08
  • JDK17在Windows安装及环境变量配置超详细的教程

    JDK17在Windows安装及环境变量配置超详细的教程

    这篇文章主要介绍了JDK17在Windows安装及环境变量配置超详细的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-11-11
  • 使用dom4j解析xml文件,并转出json格式问题

    使用dom4j解析xml文件,并转出json格式问题

    这篇文章主要介绍了使用dom4j解析xml文件,并转出json格式问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot集成mybatis实例

    SpringBoot集成mybatis实例

    本篇文章主要介绍了SpringBoot集成mybatis实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java集合框架之Set和Map详解

    Java集合框架之Set和Map详解

    大家好,本篇文章主要讲的是Java集合框架之Set和Map详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Java修饰符 abstract,static,final 的区别详解

    Java修饰符 abstract,static,final 的区别详解

    以下是对Java修饰符abstract,static,final的区别进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • java中struts2实现文件上传下载功能

    java中struts2实现文件上传下载功能

    这篇文章主要介绍了java中struts2实现文件上传下载功能的方法,以实例形式分析了struts2文件上传下载功能的实现技巧与相关问题,具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • Java设计模式之java模板方法模式详解

    Java设计模式之java模板方法模式详解

    这篇文章主要介绍了Java设计模式模板方法模式(Template)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • SpringBoot默认包扫描机制及@ComponentScan指定扫描路径详解

    SpringBoot默认包扫描机制及@ComponentScan指定扫描路径详解

    这篇文章主要介绍了SpringBoot默认包扫描机制及@ComponentScan指定扫描路径详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论