之前介绍了在《Spring boot中使用log4j》,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需要采用DEBUG级别,在测试环境可能需要小部分采用DEBUG级别,而在生产环境时我们又希望采用INFO级别。这个时候,我们要自己手工编辑log4j.properties文件来调整日志级别,不论在版本库中默认保存哪个环境的级别设定,都会增加其他环境使用人员的工作量,虽然很细微,但是手工修改总不是一件很好的选择,难免会发现修改后误提交等问题。

  我们可以采用springboot多环境参数配置的方案加以解决

  先创建几个配置文件:

  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-prod.properties:生产环境

  在application.properties中添加配置spring.profiles.active=dev,默认激活application-dev.properties配置)

  application-dev.propertiesapplication-test.properties配置文件中添加日志级别定义:logging.level.com.ysl=DEBUG

  application-prod.properties配置文件中添加日志级别定义:logging.level.com.ysl=INFO

  通过上面的定义,根据logging.level.com.ysl在不同环境的配置文件中定义了不同的级别,但是我们已经把日志交给了log4j管理,看看我们log4j.properties中对com.didispace包下的日志定义是这样的,固定定义了DEBUG级别,并输出到名为didifile定义的appender中。

# com.ysl包下的日志配置
log4j.category.com.ysl=DEBUG, didifile# com.ysl下的日志输出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=logs/my.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

  我们需要将DEBUG替换成application-{profile}.properties配置文件中定义logging.level.com.didispace即可,所以配置变为如下内容:

# com.ysl包下的日志配置
log4j.category.com.ysl=${logging.level.com.didispace}, didifile# com.ysl下的日志输出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=logs/my.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

  到这里我们已经完成了所有配置工作,我们可以通过运行单元测试,然后看my.log文件中输出的日志内容。通过修改默认的application-dev.properties配置的日志级别为INFO,再运行单元测试的DEBUG内容是否被输出到了my.log中验证参数是否被正确引用了。对于不同环境的使用人员也不需要改变代码或打包文件,只需要通过执行命令中参加参数即可,比如我想采用生产环境的级别,那么我可以这样运行应用:

java -jar xxx.jar --spring.profiles.active=prod

转载于:https://www.cnblogs.com/senlinyang/p/8676015.html

Spring Boot log4j多环境日志级别的控制相关推荐

  1. SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性 ...

  2. Spring Boot 2动态修改日志级别

    本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 作为程序猿,定位问题是我们的日常工作,而日志是我们定位问题非常重要的依据.传统方式定位问题时,往往是如下 ...

  3. Spring Boot中对log4j进行多环境不同日志级别的控制

    之前介绍了在<Spring boot中使用log4j记录日志>,仅通过log4j.properties对日志级别进行控制,对于需要多环境部署的环境不是很方便,可能我们在开发环境大部分模块需 ...

  4. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  5. java配置文件放置到jar外_java相关:Spring Boot 把配置文件和日志文件放到jar外部...

    java相关:Spring Boot 把配置文件和日志文件放到jar外部 发布于 2020-3-6| 复制链接 如果不想使用默认的application.properties,而想将属性文件放到jar ...

  6. spring boot指定运行环境

    文章目录 spring boot指定运行环境 1. 命令行指定的方式 springboot根据启动命令不同,执行不同配置文件 2. application.properties中添加spring.pr ...

  7. log4j对象改变日志级别

    log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别. log4j配置文件: log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION #log4 ...

  8. spring boot+mybatis框架环境搭建

    配置spring boot+mybatis框架环境搭建 一, spring boot 环境搭建 以下步骤为 1,新建maven工程 2.在pom文件中添加: spring-boot-starter-p ...

  9. 【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 Spring Boot Test集成测试环境搭建

    文章目录 集成测试 @SpringBootTest的集成测试 Spring Boot Test集成测试环境搭建 参考 源代码 集成测试 集成测试(Integration Testing,缩写为INT) ...

最新文章

  1. 聊聊数据库中的那些锁
  2. 聊聊flink的AscendingTimestampExtractor
  3. [E::fai_build_core] Different line length in sequence ‘kraken:taxid|436|NZ_CP062147.1‘
  4. C# addin 开发心得记录
  5. hbase 完全分布式启动集群报错: KeeperErrorCode = NoNode for /hbase/master 问题
  6. mysql添加用户,设置权限,回收权限,删除用户详解
  7. 电信运营商计费模型_5G消息年底商用?三大运营商联合推出已有手机支持
  8. JMetro 5.2版发布
  9. 工业机器人用铸铁牌号_蠕墨铸铁生产工艺
  10. AI发来贺电,您的2333号奶牛已进入恋爱时节 | 野性的呼唤
  11. 华中科技大学在职研究生计算机好考不,华中科技大学在职研究生容易考吗?
  12. c#制作的简单的画图板
  13. 高德地图如何取消订单_一文教你如何爬取高德地图
  14. 《视觉SLAM十四讲》学习笔记
  15. 微软更新Win10工具Media Creation Tool
  16. 社交网络和物联网技术,拓展了数据采集技术渠道
  17. fpga如何约束走线_FPGA入门之我见- 布局布线(place route,PAR)
  18. CentOS,Ubuntu,Linux下安装yasm-1.3.0详细说明
  19. 重量级锁和轻量级锁(自旋锁)
  20. MyBatis入门回顾

热门文章

  1. 测试基础【第七篇】测试报告
  2. (转)Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
  3. 一个类作为另一个类的数据成员
  4. Flutter AnimatedContainer 动画使用解析
  5. java8新特性(2)--接口的默认方法
  6. IPv4与IPv6数据报格式
  7. Python--网络编程-----传输层tcp/udp协议
  8. 【XSY1295】calc n个点n条边无向连通图计数 prufer序列
  9. javascript中call apply的区别
  10. 创建存储过程向表中循环加入数据