Spring Boot 集成 logback日志

  • application.properties 配置logback.xml 路径
    注:如果logback.xml在默认的 src/main/resources 目录下则不需要配置application.properties路径
     logging.config=classpath:log/logback.xml
  • 配置logback.xml
    注:logback.xml放在src/main/resources目录下新建log文件夹里;
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xml>
    <configuration scan="true">
        <property resource="log/logback.properties" />
    
        <!-- 控制台日志配置 -->
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!-- 格式化 -->
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder>
        </appender>
    
        <!-- info级别日志控制 -->
        <appender name="FILE_INFO"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <file>${logback.path}/info.log</file>
            <!-- 是否追加 默认为true -->
            <append>true</append>
            <!-- 滚动策略 日期+大小 策略 -->
            <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/info/info-%i.zip</fileNamePattern>
                <!-- 单个日志大小 -->
                <maxFileSize>${logback.maxFileSize}</maxFileSize>
                <!-- 日志保存周期 -->
                <maxHistory>${logback.maxHistory}</maxHistory>
                <!-- 总大小 -->
                <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
            </rollingPolicy>
            <!-- 格式化 -->
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder>
            <!-- 级别过滤 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <!-- warn级别日志控制 -->
        <appender name="WARN_INFO"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <file>${logback.path}/warn.log</file>
            <!-- 是否追加 默认为true -->
            <append>true</append>
            <!-- 滚动策略 日期+大小 策略 -->
            <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/warn/warn-%i.zip</fileNamePattern>
                <!-- 单个日志大小 -->
                <maxFileSize>${logback.maxFileSize}</maxFileSize>
                <!-- 日志保存周期 -->
                <maxHistory>${logback.maxHistory}</maxHistory>
                <!-- 总大小 -->
                <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
            </rollingPolicy>
            <!-- 格式化 -->
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder>
            <!-- 级别过滤 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <!-- ERROR级别日志控制 -->
        <appender name="ERROR_INFO"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!-- 文件路径 -->
            <file>${logback.path}/error.log</file>
            <!-- 是否追加 默认为true -->
            <append>true</append>
            <!-- 滚动策略 日期+大小 策略 -->
            <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${logback.zip.path}/%d{yyyy-MM-dd}/error/error-%i.zip</fileNamePattern>
                <!-- 单个日志大小 -->
                <maxFileSize>${logback.maxFileSize}</maxFileSize>
                <!-- 日志保存周期 -->
                <maxHistory>${logback.maxHistory}</maxHistory>
                <!-- 总大小 -->
                <totalSizeCap>${logback.totalSizeCap}</totalSizeCap>
            </rollingPolicy>
            <!-- 格式化 -->
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p] [%t] %c{36} - %m%n</pattern>
            </encoder>
            <!-- 级别过滤 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <root level="${logback.level}">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="FILE_INFO" />
            <appender-ref ref="WARN_INFO" />
            <appender-ref ref="ERROR_INFO" />
        </root>
    </configuration>
  • 在log目录下配置logback.properties
    logback.path=/var/log/project_name
    logback.zip.path=/var/log/zip/project_name
    logback.maxFileSize=xMB
    logback.maxHistory=15
    logback.totalSizeCap=xxxMB
    logback.level=DEBUG

原文地址:https://www.cnblogs.com/aben-blog/p/8968363.html

时间: 2024-08-30 08:14:19

Spring Boot 集成 logback日志的相关文章

剑指架构师系列-spring boot的logback日志记录

Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志对象,也可以定义日志类型.级别. 级别:ERROR.WARE.INFO.DEBUG和TRACE.没有FATAL,归纳到了ERROR级别里.ERROR.WARN and INFO level messages are logged by default. 在Spring Boot中,最好定义为logb

【spring boot logback】spring boot中logback日志乱码问题

在初次使用logback的自定义配置文件完整的控制spring boot日志后,发现了一个无法忍受的问题,就是日志乱码. 控制台看到打印日志乱码如下: 而日志文件打开: 记事本打开 sublime打开 关于这个问题,分析如下: 1.打印的"进入Controller日志控制中心---->>>"字样可以看出,至少代码本身和IDE环境的编码方式没有任何的关系: 2.打印出来的日志是logback-spring.xml文件起作用之后,显示在控制台的,而日志文件打开后,看到 不

spring boot 集成logstash 日志

1.logstash 插件配置 logstash下config文件夹下添加 test.conf 文件内容: input{ tcp { mode => "server" host => "0.0.0.0" port => 4567 codec => json_lines } } output{ elasticsearch{ hosts=>["127.0.0.1:9200"] index => "user

Spring Boot之logback日志最佳实践

一.Spring Boot日志介绍 Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的.为Java Util日志记录.Log4J2和Logback提供了缺省配置.在每种情况下,日志记录器都预先配置为使用控制台输出和可选的文件输出. 默认情况下,如果使用Spring Boot的"Starters"坐标,则默认使用Logback进行日志记录.还包括适当的Logback路由,以确保使用Java Util日志记录.Commons日志记录.Lo

Spring Boot 整合 Logback 日志框架

常用处理 Java 的日志组件有 slf4j.log4j.logback.common-logging 等.logback 基于 log4j 基础上大量改良,不能单独使用,推荐配合日志框架 slf4j 来使用. logback 当前分成三个模块:logback-core.logback-classic 和 logback-access,logback-core 是其它两个模块的基础模块 logback 的核心对象:Logger(日志记录器).Appender(指定日志输出的目的地,目的地可以是控

Quartz与Spring Boot集成使用

上次自己搭建Quartz已经是几年前的事了,这次项目中需要定时任务,需要支持集群部署,想到比较轻量级的定时任务框架就是Quartz,于是来一波. 版本说明 通过搜索引擎很容易找到其官网,来到Document的页面,当前版本是2.2.x. 简单的搭建操作 通过Maven引入所需的包: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId>

Kafka 入门和 Spring Boot 集成

Kafka 入门和 Spring Boot 集成 标签:博客 [TOC] 概述 kafka 是一个高性能的消息队列,也是一个分布式流处理平台(这里的流指的是数据流).由java 和 Scala 语言编写,最早由 LinkedIn 开发,并 2011年开源,现在由 Apache 开发维护. 应用场景 下面列举了一些kafka常见的应用场景. 消息队列 : Kafka 可以作为消息队列使用,可用于系统内异步解耦,流量削峰等场景. 应用监控:利用 Kafka 采集应用程序和服务器健康相关的指标,如应用

Spring Boot集成MyBatis实现通用Mapper

前言 MyBatis关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.不管是DDD(Domain Driven Design,领域驱动建模)还是分层架构的风

Spring Boot集成Hazelcast实现集群与分布式内存缓存

Hazelcast是Hazelcast公司开源的一款分布式内存数据库产品,提供弹性可扩展.高性能的分布式内存计算.并通过提供诸如Map,Queue,ExecutorService,Lock和JCache等Java的许多开发人员友好的分布式实现. 了解Hazelcast Hazelcast特性 简单易用 Hazelcast是用Java编写的,没有其他依赖关系.只需简单的把jar包引入项目的classpath即可创建集群. 无主从模式 与许多NoSQL解决方案不同,Hazelcast节点是点对点的.