Spring Boot项目的Logback配置文件使用yaml格式

1、普通的Spring项目使用logback默认用properties文件做为配置变量。

2、如果非要用yaml文件,那么可以转成Spring Boot项目,天生无缝结合

3、没办法,如果项目配置文件用了yaml,那么你的logback只能自己另开properties文件进行单独配置

以下是基于Spring Boot的yaml配置文件示例:

application.yml:

# 日志配置  为空为项目跟目录下的logs  或者指定已经存在的目录
log:
  path: /data/weblog/business/www.test.com

logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
说明:
    1. 文件的命名和加载顺序有关
       logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载
       如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml
    2. logback使用application.yml中的属性
       使用springProperty才可使用application.yml中的值 可以设置默认值

-->
<configuration scan="true" scanPeriod="60 seconds">

    <!-- log base path -->
    <springProperty scope="context" name="logPath" source="log.path" defaultValue="logs"/>
    <!-- log name -->
    <property name="LOG_HOME" value="${logPath}"/>
    <!-- back log base path -->
    <property name="LOG_BACK_HOME" value="${logPath}/backup"/>

    <property name="SRVNAME" value="clsapi-console"/>
    <!-- 文件切割大小 -->
    <property name="maxFileSize" value="100MB" />
    <!-- 文档保留天数 -->
    <property name="maxHistory" value="60" />
    <!-- 文档保留总大小 -->
    <property name="totalSizeCap" value="10GB" />

    <!-- 系统服务日志 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${SRVNAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_BACK_HOME}/%d{yyyy-MM-dd}/${SRVNAME}.%d{HH}.%i.log.gz</fileNamePattern>
            <!-- 单个日志文件最多 100MB, 60天的日志周期,最大不能超过10GB -->
            <maxFileSize>${maxFileSize}</maxFileSize>
            <maxHistory>${maxHistory}</maxHistory>
            <totalSizeCap>${totalSizeCap}</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyyMMdd HH:mm:ss.SSS} %X{LOG_ID} [%thread] %-5level %logger{100}.%method\(\):%L - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- On Windows machines setting withJansi to true enables ANSI
         color code interpretation by the Jansi library. This requires
         org.fusesource.jansi:jansi:1.8 on the class path.  Note that
         Unix-based operating systems such as Linux and Mac OS X
         support ANSI color codes by default.
          recognizes "%black", "%red", "%green","%yellow","%blue",
          "%magenta","%cyan", "%white", "%gray", "%boldRed","%boldGreen",
          "%boldYellow", "%boldBlue", "%boldMagenta""%boldCyan",
          "%boldWhite" and "%highlight"
          -->
        <!--withJansi>true</withJansi-->
        <encoder>
            <!--%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-40.40logger{39} : %m%n-->
            <pattern>%boldCyan(%d{yyyy-MM-dd HH:mm:ss.SSS}) - %boldRed(%5p) %blue([%10.10t]) %magenta(%-35.35logger{20}) %yellow(%2M) %green(%2L) : %msg%n</pattern>
            <!--<pattern>%d{yyyyMMddHHmmss} [%thread] [%c %2M %2L] %-3p - %m%n</pattern>-->
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>

    <logger name="com.easonjim.clsapi.aspect.LogsAspect" level="debug">
        <appender-ref ref="api_call_file"/>
    </logger>
    <logger name="org.springframework.web.servlet" level="info"/>   

</configuration>

4、如果你非要用yaml文件,那么只能使用绝对路径,例如:

logback-spring.xml引入文件:

<property file="${HOME}/configuration/application.yaml"/>

application.yaml:

LOG_FILE : C:/logs

logback-spring.xml使用:

<appender name="MY_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>

...

</appender>

logback-spring.xml增加扫描时间:

<configuration scan="true" scanPeriod="10 seconds">

参考:

https://stackoverflow.com/questions/42648195/how-to-set-logback-xml-properties-in-application-yaml

https://my.oschina.net/skyzwg/blog/915527

原文地址:https://www.cnblogs.com/EasonJim/p/9159195.html

时间: 2024-08-01 08:20:03

Spring Boot项目的Logback配置文件使用yaml格式的相关文章

spring boot 1.5.4 配置文件详解(八)

上一篇:spring boot 1.5.4 集成spring-Data-JPA(七) 1      Spring Boot配置文件详解 相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁多的XML配置内容,替代它的是在pom.xml中引入模块化的Starter POMs,其中各个模块都有自己的默认配置,所以如果不是特殊应用场景,就只需要在appli

Spring Boot通过application.yml配置文件获取属性及类信息

实体类信息Spring Boot通过application.yml配置文件获取属性及类信息 原文地址:https://blog.51cto.com/6000734/2354529

Spring Boot中的logback + slf4j

1什么时slf4j slf4j是一个日志接口,自己没有具体实现日志系统,只提供了一组标准的调用api,这样将调用和具体的日志实现分离,使用slf4j后有利于根据自己实际的需求更换具体的日志系统,比如,之前使用的具体的日志系统为log4j,想更换为logback时,只需要删除log4j相关的jar,然后加入logback相关的jar和日志配置文件即可,而不需要改动具体的日志输出方法,试想如果没有采用这种方式,当你的系统中日志输出有成千上万条时,你要更换日志系统将是多么庞大的一项工程.如果你开发的是

Spring Boot 使用slf4j+logback记录日志配置

在学校的时候使用Java进行开发,工作之后由于项目组采用.net进行开发就转到.net了.最近开始学习Java,对一些新东西进行学习.开始看SpringBoot,对遇到的问题进行记录. 学习新的东西最好从例子开始,只看文档太枯燥,但是文档还是必须要看的. spring boot主要的目的是: 为 Spring 的开发提供了更快更广泛的快速上手 使用默认方式实现快速开发 提供大多数项目所需的非功能特性,诸如:嵌入式服务器.安全.心跳检查.外部配置等 SLF4J是为各种loging APIs提供一个

Spring Boot中实现logback多环境日志配置

在Spring Boot中,可以在logback.xml中的springProfile标签中定义多个环境logback.xml: <springProfile name="production"> <root level="DEBUG"> <appender-ref ref="STDOUT"/> </root> </springProfile> <springProfile nam

Spring Boot 应用系列 5 -- Spring Boot 2 整合logback

上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对于那些日志量不算太高的项目来说,选择logback更简单方便. 1. pom.xml pom.xml不需要添加任何依赖. 2. logback的配置文件 系统启动时,logback按照下列顺序加载第一个找到的配置文件: (1) classpath: logback-test.xml (2) clas

Spring Boot 使用 Log4j2 &amp; Logback 输出日志到 EKL

文章目录 1.ELK 介绍 2.环境.软件准备 3.ELK 环境搭建 4.Spring Boot 配置示例 4.1.Log4j2 方式配置 4.2.Logback 方式配置 1.ELK 介绍 ELK 是 Elasticsearch , Logstash, Kibana 的缩写,Elasticsearch 是开源分布式搜索引擎,提供搜集.分析.存储数据等功能,Logstash 主要是用来日志的搜集.分析.过滤日志的工具,Kibana 为 Elasticsearch 提供分析和可视化的 Web 平台

[读书笔记] 一、Spring boot项目搭建与配置文件

读书笔记:[JavaEE开发的颠覆者 Spring Boot实战] 作者:汪云飞 从今天开始坚持读书,并记录下此读书笔记. 一,初接触 Spring boot 项目Hello world搭建 1.pom.xml 配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat

Spring Boot项目中各配置文件的对比

application.properties是Spring Boot的全局配置文件,放在src/main/resources目录下或者类路径的/config下,作用是对一些默认配置的配置值进行修改. application.properties提供自定义属性的支持,这样我们就可以把一些常量配置在这里: com.dudu.name="嘟嘟MD" com.dudu.want="祝大家鸡年大吉吧" 然后直接在要使用的地方通过注解@Value(value="${c