logback-spring.xml日志配置文件详解

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

前言

打印日志是一个系统的基本功能,系统出现异常可以通过查找日志弄清楚是什么原因,从而更加快速地定位问题,修复系统。文章来源地址https://www.toymoban.com/news/detail-607927.html

logback-spring.xml 配置

  1. 文件位置
    logback-spring.xml日志配置文件详解,SpringCloud,mybatis,JAVA,logback,spring,xml
  2. 具体配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator />
    <!-- 当前模块名称 -->
    <contextName>myAppName</contextName>
    <!-- 设置日志文件第一层目录 -->
    <property name="LOG_PATH" value="./logs"/>
    <!--设置第二层目录-->
    <property name="APPDIR" value="airport_admin"/>

    <!-- 彩色日志 -->
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
                    
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <!-- 日志记录器,日期滚动记录error日志 -->
    <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_PATH}/${APPDIR}/log_error.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 归档的日志文件的路径,例如今天是2023-07-25日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件归档到不同的目录。
    而2023-07-25的日志文件由fileNamePattern指定,%d{yyyyMMdd}-%d{HH:mm:ss}指定日期格式,%i指定索引 -->
            <fileNamePattern>${LOG_PATH}/${APPDIR}/error/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd}-%d{HH:mm:ss}.%i.log</fileNamePattern>
            <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
            命名日志文件,例如log-error-2023-07-23-10:25:35.0.log -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
            <!-- 启动项目后清理历史日志,默认值为 false -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录error级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>error</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 日志记录器,日期滚动记录warn日志 -->
    <appender name="FILEWARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_PATH}/${APPDIR}/log_warn.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 类似error配置  -->
            <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd}-%d{HH:mm:ss}.%i.log</fileNamePattern>
           <!-- 类似error配置  -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L [%thread] - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录warn级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>warn</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 日志记录器,日期滚动记录info日志 -->
    <appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 正在记录的日志文件的路径及文件名 -->
        <file>${LOG_PATH}/${APPDIR}/log_info.log</file>
        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
           <!-- 类似error配置  -->
            <fileNamePattern>${LOG_PATH}/${APPDIR}/info/%d{yyyyMMdd}/${APPDIR}-%d{yyyyMMdd-HH:mm:ss}.%i.log</fileNamePattern>
            <!-- 类似error配置  -->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <maxHistory>30</maxHistory>
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <!-- 追加方式记录日志 -->
        <append>true</append>
        <!-- 日志文件的格式 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger [%thread] - %msg%n</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!-- 此日志文件只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!--encoder 默认配置为PatternLayoutEncoder-->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
    </appender>

    <!--myibatis log configure-->
    <logger name="com.apache.ibatis" level="TRACE"/>
    <logger name="java.sql.Connection" level="DEBUG"/>
    <logger name="java.sql.Statement" level="DEBUG"/>
    <logger name="java.sql.PreparedStatement" level="DEBUG"/>


    <!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
    <!--
      <springProfile name="dev">
      </springProfile>
      可以使用这个标签实现不同环境不同日志级别
        <springProfile name="test">
            <root level="INFO">
                <appender-ref ref="FILE"/>
                <appender-ref ref="STDOUT"/>
            </root>
        </springProfile>
     -->

    <!-- 异步输出 -->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
        <queueSize>256</queueSize>
        <!-- 添加附加的appender,最多只能添加一个 -->
        <appender-ref ref="FILEINFO"/>
    </appender>


    <!--
    springProperty 可以读取配置文件中的属性 <file>logs/${logName}.log</file>    使用方法
    <springProperty scope="context" name="logName"
    source="spring.application.name" defaultValue="localhost"/>
    -->

    <springProfile name="dev">
        <root level="INFO">
            <appender-ref ref="FILEERROR" />
            <appender-ref ref="FILEWARN" />
            <appender-ref ref="ASYNC" />
            <!-- 生产环境将请stdout,testfile去掉 -->
            <!-- <appender-ref ref="STDOUT"/>-->
        </root>
    </springProfile>
    <springProfile name="pro">
        <root level="INFO">
            <appender-ref ref="FILEERROR" />
            <appender-ref ref="FILEWARN" />
            <appender-ref ref="ASYNC" />
            <!-- 生产环境将请stdout,testfile去掉 -->
            <!-- <appender-ref ref="STDOUT"/>-->
        </root>
    </springProfile>
</configuration>

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

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

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

相关文章

  • logback-spring.xml

    ?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"? configuration appender name=\\\"stdout\\\" class=\\\"ch.qos.logback.core.ConsoleAppender\\\" encoder springProfile name=\\\"dev\\\" pattern%d{yyyy-MM-dd-HH:mm:ss E} %level [%thread]-%class[%line]: %msg%n/pattern /springProfile springProfile name=\\\"!dev\\\" pattern%d{yyyy-MM-dd-HH:mm:ss E} %level [%thread]-%class[%line]: %msg%n/pattern /springP

    2024年02月11日
    浏览(38)
  • Could not initialize Logback logging from classpath:logback-spring.xml 错误解决

    1. 问题发生    springboot 项目以前运行时没有问题,但是重装系统换了个IDEA运行项目忽然报错如下: 2. 排查过程   本来我只注意到 Could not initialize Logback logging from classpath:logback-spring.xml 这个提示,我以为是别人动到了代码,看了下提交记录也没有,经过网上排查,有说是

    2024年02月12日
    浏览(39)
  • logback配置xml日志文件(保姆级教程)

    这是个啥,这就是个控制日志输出格式、控制日志输出位置、控制日志输出环境、控制日志输出级别的玩意、控制忽略输出的日志就这些功能,没有什么很复杂的东西,废话不说多了。 configuration scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为

    2024年01月24日
    浏览(40)
  • SpringBoot集成slf4j日志和logback.xml配置详解

    slf4j,即(Simple Logging Facade for Java,简单门面日志)。它是对所有日志框架制定的一种 规范、标准、接口 ,并不是一个框架的具体的实现,它只服务于各种各样的日志系统。 slf4j提供了统一的记录日志的接口,对不同日志系统的具体实现进行了抽象化,只要按照其提供的方法记

    2024年02月03日
    浏览(48)
  • Java Logback日志框架概述及logback.xml详解

    日志技术具备的优势 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。· 可以随时以开关的形式控制是否记录日志,无需修改源代码。 日志体系结构 Logback日志框架 Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好 Logback是基于

    2024年02月10日
    浏览(39)
  • Spring Boot多环境配置及Logback日志记录

    Spring Boot多环境配置 logback日志记录器 Spring Boot的针对不同的环境创建不同的配置文件, 语法结构:application-{profile}.properties profile:代表的就是一套环境 application-dev.yml 开发环境 端口8090 application-test.yml 测试环境 端口8091 application-prod.yml 生产环境 端口8092 在application.yml 中激活

    2024年01月19日
    浏览(36)
  • 6.3 SpringBoot日志进阶实战 Logback配置详解

    在上一篇文章中,我和你介绍了SpringBoot快速入门Slf4j + Logback实战,遗留的问题是如何将日志输出到文件。 今天这篇文章分享了我在SpringBoot中使用Logback配置日志的经验和方法,并提供了详细的代码示例和解释,包括: 滚动文件、异步日志记录、动态指定属性、日志级别、配

    2024年02月07日
    浏览(35)
  • org.apache.commons.io.monitor+logback.xml+vue实时显示当前日志信息

    -:后端使用ssemiter保持客户端链接:http 这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。 -:前端使用vue3+ansi_up做页面展示 第一: 刷新页面导致session问题 可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java的session的数

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

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

    2024年02月12日
    浏览(32)
  • spring配置文件解读——applicationContext.xml

    spring的配置文件-applicationContext.xml_听着晴天看星晴的博客-CSDN博客

    2024年02月11日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包