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

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

  1. 一行配置搞定 Spring Boot项目的 log4j2 核弹漏洞!

    相信昨天,很多小伙伴都因为Log4j2的史诗级漏洞忙翻了吧? 看到群里还有小伙伴说公司里还特别建了800+人的群在处理... 好在很快就有了缓解措施和解决方案.同时,log4j2官方也是速度影响发布了 ...

  2. Spring Boot 项目的 API 接口防刷

    首先是写一个注解类 拦截器中实现 注册到springboot中 在Controller中加入注解 说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springbo ...

  3. spring boot项目的maven库查询地址

    阿里巴巴地址 http://maven.aliyun.com/nexus/#welcome maven通用地址 http://mvnrepository.com/ gradle默认mavenCentr ...

  4. Spring Boot配置,读取配置文件

    Spring Boot配置,读取配置文件 一.配置Spring Boot 1.1 服务器配置 1.2 使用其他Web服务器 1.3 配置启动信息 1.4 配置浏览器显示ico 1.5 Yaml语法 1 ...

  5. Spring Boot默认日志logback配置解析

    前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如何使用? 正文 Sp ...

  6. spring boot下使用logback或log4j生成符合Logstash标准的JSON格式

    spring boot下使用logback或log4j生成符合Logstash标准的JSON格式 一.依赖 由于配置中使用了json格式的日志输出,所以需要引入如下依赖 "net.logst ...

  7. Spring boot 自动配置自定义配置文件

    示例如下: 1.   新建 Maven 项目 properties 2.   pom.xml <project xmlns="http://maven.apache.org/POM/4 ...

  8. Spring Boot: 加密应用配置文件敏感信息

    Spring Boot: 加密应用配置文件敏感信息 背景 我们的应用之前使用的是Druid数据库连接池,由于需求我们迁移到HikariCP连接池,druid 数据源加密提供了多种方式: 可以在配置文件 ...

  9. Spring Boot 核心注解与配置文件

    @SpringBootApplication注解 Spring Boot项目有一个入口类 (*Application) 在这个类中有一个main 方法,是运行该项目的切入点.而@SpringBootA ...

随机推荐

  1. mybatis比hibernate处理速度快的原因

    mybatis:是面向结果集的.当要展示的页面需要几个字段时,springmvc会提供这几个字段并将其拼接成结果集,在转化为相应的对象. hibernate:是面向对象的.要展示的页面需要某些字段时, ...

  2. Python2和Python3同时安装到Windows

    上月已经把Python2安装好了,安装目录和及其下的Scripts也在安装时添加到了环境变量PATH中,可以使用python命令执行程序. 安装包:python-2.7.14.amd64.msi(没有 ...

  3. java基础32 List集合下的ArrayList集合

    单例集合体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合 ...

  4. 洛谷P1525关押罪犯

    传送门啦 想让最大值最小,所以,这题可以用二分法,排序之后发现可以并查集,因为要使最大值最小,排序后这个最大值是存在的. 对于会冲突的两个罪犯,我们连一条无向边,然后按权值从大到小排序,从大到小枚举每 ...

  5. JS调用百度地图API标记地点

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. Linux 相关

    一.WCHAN的含义 WCHAN 进程正在睡眠的内核函数名称:该函数的名称是从/root/system.map文件中获得的. 参考:解析ANDROID ps命令执行后各项参数的含义 二.查看线程 ps ...

  7. 大数据统计分析平台之三、Kibana安装和使用

    kibana安装 1.到官网下载kibana: cd /usr/local/software wget https://artifacts.elastic.co/downloads/kibana/ki ...

  8. php判断是否是ajax提交 方法

    /** * 判断是否是AJAX提交 * @return bool */ function is_ajax() { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) ...

  9. Spring的配置文件ApplicationContext.xml配置头文件解析

    Spring的配置文件ApplicationContext.xml配置头文件解析 原创 2016年12月16日 14:22:43 标签: spring配置文件 5446 spring中的applica ...

  10. mysql 新增时,唯一索引冲突时更新

    INSERT INTO table_name(f1 ,f2 ,f3) VALUES(? ,?) on duplicate key update f2 = ? ,f3 = ?