文档章节

logback在spring-boot中不同环境不同配置的方法之一

douglaswei
 douglaswei
发布于 2017/05/31 16:57
字数 529
阅读 93
收藏 0

背景

项目: spring-boot+maven+logback
项目环境分开发、测试、预发布、生产环境,不同环境的配置文件是不一样,日志打印需要根据不同的环境使用不同的配置,例如开发环境的日志等级是DEBUG,其他环境的日志等级是INFO;开发环境日志输出到控制台,其他环境日志输出到文件(不输出到控制台),。那么问题来了:

  1. 不同环境设置不同的日志打印级别
  2. 不同环境设置不同的日志输出设备(控制台、文件、db等)

方案

No.1

  1. 配置文件与jar分离,独立维护logback的配置文件,在启动参数中添加配置文件。优点:配置文件与jar分离,干净,缺点:维护成本上升

No.2

  1. 结合maven的profiles插件格式化logback配置文件参数,利用logback的条件判断if指令区分不同环境。优点:一个文件处理完成,部署方便,缺点:不好维护

No.3

  1. 针对不同环境提供不同logback配置,抽取公共配置部分,基于maven的profiles插件格式化spring-boot的配置文件application.properties中的logging配置文件。 优点:配置文件跟随jar包,发布简单,配置文件集中管理,维护简单,缺点:有点啰嗦

选择

  1. 基于当前项目特点以及开发团队以及测试部署团队的特点,项目小,环境有限(4个),维护成本低;测试团队Jenkins任务维护成本低,不增加部署难度。所以选择了方案3,发布简单,部署方便,维护成本较低。

技术点

  1. 基于maven的profiles插件针对不同环境配置
  2. 基于spring-boot的配置文件application.properties提供指定log配置文件的能力
  3. 基于logback公有配置include 公共配置的能力,spring-boot提供的logback配置org/springframework/boot/logging/logback/defaults.xml

实例demo传送门

© 著作权归作者所有

共有 人打赏支持
douglaswei
粉丝 8
博文 58
码字总数 39734
作品 0
珠海
架构师
Spring Boot日志集成

Spring Boot日志框架 Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Sprin...

java技术栈
2017/11/08
0
0
spring boot(8)默认日志logback配置

1 日志简介 Spring Boot使用Commons Logging记录所有内部日志,但是它将底层日志实现打开,为Java.Util.Logging,Log4J2和Logback提供默认配置。 在每个案例中,loggers都预先配置,以使用控...

刘胜球
2017/10/31
0
0
Spring Boot日志集成实战

Spring Boot日志框架 Spring Boot支持Java Util Logging,Log4j2,Lockback作为日志框架,如果你使用starters启动器,Spring Boot将使用Logback作为默认日志框架。无论使用哪种日志框架,Sprin...

Java技术栈
06/08
0
0
Spring Boot干货系列:(七)默认日志logback配置解析

转载自:点击打开链接 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候,是带着下面几个问题来查资料的,你呢 如何引入日志? 日志输出格式以及输出方式如何配置? 代码中如...

u012843873
04/23
0
0
spring-boot | 日志

嘿,好久不见,你还好吗? 我一般都是为大家带来项目上比较实用的东西,这次我们来试试项目开发中对日志的处理,希望对你有所帮助。 理论知识 1、为什么要用日志? 你是否因为项目出现问题,...

冯文议
08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
11分钟前
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
36分钟前
1
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
1
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
1
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部