springboot logback自定义配置

1.控制台输出
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <!-- 格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
</appender>

2.<!-- 日志记录器,日期滚动记录 -->
<appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <!-- 正在记录的日志文件的路径及文件名 -->
    <file>${LOG_PATH}/log_error.log</file>
    <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- 归档的日志文件的路径,例如今天是2021-01-11日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
        而2021-01-11的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
        <fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <MaxHistory>60</MaxHistory>
        <!-- 除按日志记录之外,还配置了日志文件不能超过100M,若超过100M,日志文件会以索引0开始,
        命名日志文件,例如log-error-2021-01-11.0.log -->
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </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 - %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>

3.<!-- 日志记录器,日期滚动记录 -->
<appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_PATH}/log_info.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_PATH}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <MaxHistory>30</MaxHistory>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>100MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </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 - %msg%n</pattern>
        <charset>utf-8</charset>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>info</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

4.自定义的一些日志记录,与项目中的类对应
<!-- kafka所有消费日志文件记录,出错日志记录在log_error.log中 -->
<appender name="KAFKARECORD-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_PATH}/kafka_consumer_record.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOG_PATH}/record/kafka_consumer_record-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
        <MaxHistory>365</MaxHistory>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>200MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </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 - %msg%n</pattern>
        <charset>utf-8</charset>
    </encoder>
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>info</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
</appender>

5.<!-- 消费kafka记录的日志 -->
<logger name="com.joe.xl.KafkaConsumerService" level="INFO" additivity="false">
    <appender-ref ref="KAFKARECORD-APPENDER" />
    <appender-ref ref="FILEERROR" />
    <appender-ref ref="FILEWARN" />
    <appender-ref ref="FILEDEBUG" />
</logger>

6.<!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 -->
<root level="info">
    <appender-ref ref="FILEERROR" />
    <appender-ref ref="FILEWARN" />
    <appender-ref ref="FILEINFO" />
    <appender-ref ref="FILEDEBUG" />
    <appender-ref ref="CONSOLE" />
</root>
 
### 回答1: Spring Boot 默认使用 logback 作为日志系统。logback 是一个功能强大的日志系统,可以方便地配置日志输出格式、输出目的地等。如果需要自定义日志设置,可以在项目中添加 logback-spring.xml 配置文件。 ### 回答2: Springboot是一个非常流行的Java框架,可以帮助开发者快速构建高效的Web应用程序。而在构建应用程序时,日志记录是必不可少的一部分。Springboot中的日志记录可以通过Logback来实现。Logback是一个功能强大的Java日志框架,提供了高效的、可扩展的、可配置的日志记录功能。 使用Logback可以将应用程序的日志记录到各种输出目标,如控制台、文件、数据库等。它可以根据需求进行灵活的配置和管理,而且非常容易集成到Springboot应用程序中。 为了在Springboot应用程序中使用Logback,可以将其作为依赖项添加到项目的pom.xml文件中,如下所示: ``` <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> ``` 然后,在应用程序的application.yml或application.properties文件中进行必要的配置即可开始使用Logback作为日志记录工具。 例如,可以在application.yml文件中添加以下配置: ``` logging: level: root: info file: myapp.log ``` 这将使日志记录器记录所有信息日志,并将日志记录到名为myapp.log的文件中。 Logback也提供了大量的特性和配置选项,可以使开发者能够精确地控制应用程序的日志记录行为。使用Logback,开发者可以以非常灵活和可定制的方式管理应用程序的日志记录,并最终实现更好的应用程序性能和可靠性。 ### 回答3: SpringBoot是一个用于快速开发基于Spring的应用程序的框架,而Logback是最受欢迎的日志框架之一,可以帮助开发人员记录和跟踪应用程序的日志。SpringBootLogback的结合为开发人员提供了一种采用简单、依赖少、易于配置的方法来记录和跟踪应用程序的日志。 Logback是由log4j的开发者开发的,相对于log4j的改进是速度更快,支持异步日志减少阻塞的线程数。同时,Logback能够很好地支持多线程环境下的日志输出。它支持日志的分级,能够输出不同级别的日志。Logback配置文件也比较简单,具有明显的层次结构。 SpringBoot集成了Logback框架,提供了一个默认的配置文件,开发人员可以在该文件中进行调整。该配置文件名为logback-spring.xml,它使用了Spring框架自身的特性,可以基于Spring的profile进行灵活而又方便的配置。在配置文件中,可以指定日志的格式、输出位置、日志级别等信息。 SpringBoot还提供了第三方库来支持更方便的日志记录,比如SLF4J和Log4j2。这些库中的SLF4J尤为出色,简单易用,通过提供一套统一的接口,让开发人员可以在不同的日志框架之间进行切换,做到了日志框架的灵活性和开放性。 总之,SpringBootLogback的配合能够为开发人员提供一种简单、高效、灵活的日志记录和跟踪方式,帮助开发人员更好地查找和排除系统中的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值