SpringBoot学习(三)--Spring profile多环境方式实现logback日志配置
来源:互联网 发布:去健身房健身软件 编辑:程序博客网 时间:2024/06/03 21:26
版权声明:作者原创,转载请注明出处。
SpringBoot学习系列目录:
- SpringBoot学习(一)–构建第一个SpringBoot工程
- SpringBoot学习(二)–集成mybatis+freemark
- SpringBoot学习(三)–Spring profile多环境方式实现logback日志配置
- SpringBoot学习(四)–集成shiro实现基础登陆认证和权限管理
继上一篇搭建基础web开发框架后,继续学习和完善项目工程。SpringBoot集成了logback,所以只需要配置一下就可以,这里使用自带Spring profile方式进行多环境配置。
简介
Spring profile是Spring 3引入的概念,主要用在项目多环境运行的情况下,通过激活方式实现多环境切换,省去多环境切换时配置参数和文件的修改,相比较Maven profile简单实用,易于上手。并且Spring profile提供了多种激活方法,例如配置文件,注解,jvm参数设置等等
Spring profile多环境配置
1.在根目录(建议以application开头命名方式)新建各环境配置文件,例如图
2.分别配置各环境有差异的配置,共有配置可以配置在application.yml,例如application-dev配置开发环境的日志配置,application-prd配置生产环境的日志配置(具体日志配置下面介绍)。
3.在application.yml加上当前生效的环境配置,例如profiles:active:dev表示当前生效的环境配置为application-dev.yml,事先配好每个环境的配置,切换环境时只需要修改active:dev即可,无需复杂的修改各个配置。
logback日志配置
这里logback-dev环境,使用了简单同步配置的日志输入方式,如下
<?xml version="1.0" encoding="UTF-8"?><!-- 不分级别同步文件日志输出配置 --><configuration> <!-- 日志级别 --> <property name="logLevel" value="INFO"></property> <!-- 日志地址 --> <property name="logPath" value="./logs"></property> <!-- 最大保存时间 --> <property name="maxHistory" value="10"/> <!-- 异步缓冲队列的深度,该值会影响性能.默认值为256 --> <property name="queueSize" value="512"></property> <!-- 控制台打印日志的相关配置 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- 日志格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> </appender> <!-- 文件保存日志的相关配置,同步 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 保存日志文件的路径 --> <file>${logPath}/cms.log</file> <!-- 日志格式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>${logLevel}</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <!-- 循环政策:基于时间创建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${logPath}/cms-%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 最大保存时间--> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> </appender> <!--配置mybatis sql 日志--> <logger name="com.pf.org.cms.mapper" level="DEBUG"/> <!-- 基于INFO处理日志:具体控制台或者文件对日志级别的处理还要看所在appender配置的filter,如果没有配置filter,则使用root配置 --> <root level="${logLevel}"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root></configuration>
输出为:
logback-prd环境,使用了异步分级别日志输出方式,如下
<?xml version="1.0" encoding="UTF-8"?><!-- 分级别异步文件日志输出配置 --><configuration> <!-- 日志级别 --> <property name="logLevel" value="INFO"></property> <!-- 日志地址 --> <property name="logPath" value="./logs"></property> <!-- 最大保存时间 --> <property name="maxHistory" value="30"/> <!-- 异步缓冲队列的深度,该值会影响性能.默认值为256 --> <property name="queueSize" value="512"></property> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> </appender> <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${logPath}/cms_debug.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/cms_debug.log.%d{yyyy-MM-dd}.zip </fileNamePattern> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${logPath}/cms_info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/cms_info.log.%d{yyyy-MM-dd}.zip </fileNamePattern> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${logPath}/cms_warn.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/cms_warn.log.%d{yyyy-MM-dd}.zip </fileNamePattern> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${logPath}/cms_error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logPath}/cms_error.log.%d{yyyy-MM-dd}.zip </fileNamePattern> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="ASYNC_LOG_DEBUG" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${queueSize}</queueSize> <appender-ref ref="FILE_DEBUG"/> </appender> <appender name="ASYNC_LOG_INFO" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${queueSize}</queueSize> <appender-ref ref="FILE_INFO"/> </appender> <appender name="ASYNC_LOG_WARN" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${queueSize}</queueSize> <appender-ref ref="FILE_WARN"/> </appender> <appender name="ASYNC_LOG_ERROR" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${queueSize}</queueSize> <appender-ref ref="FILE_ERROR"/> </appender> <root level="${logLevel}"> <!-- appender referenced after it is defined --> <appender-ref ref="STDOUT"/> <appender-ref ref="ASYNC_LOG_DEBUG"/> <appender-ref ref="ASYNC_LOG_INFO"/> <appender-ref ref="ASYNC_LOG_WARN"/> <appender-ref ref="ASYNC_LOG_ERROR"/> </root></configuration>
输出为:
阅读全文
1 0
- SpringBoot学习(三)--Spring profile多环境方式实现logback日志配置
- spring boot使用logback实现多环境日志配置
- Spring入门学习(三)logback配置按天打日志
- SpringBoot日志logback-spring.xml分环境
- spring boot(三)logback日志配置
- springboot logback-spring配置mybatis日志输出
- SpringBoot Logback日志配置
- springboot logback日志配置
- springboot logback 日志配置。
- Springboot logback日志配置
- SpringBoot+LogBack 日志配置
- Spring-Boot (三) 默认日志logback配置
- springboot入门(四)springboot默认日志logback配置
- Spring Boot学习之旅:(七)logback配置日志
- 【SpringBoot教程五】:SpringBoot+LogBack日志配置
- SpringBoot学习——使用logback配置日志
- java鬼混笔记:springboot 10、springboot logback-spring.xml简单的日志配置
- springboot系列教程(三)——配置方式、多环境配置
- python http请求设置代理
- Toast.LENGTH_SHORT具体几秒
- 利用AdaBoost元算法提高分类性能
- java自学笔记13:简易扑克牌游戏
- DOS中常用的命令
- SpringBoot学习(三)--Spring profile多环境方式实现logback日志配置
- JDBC通过SSH Tunnel连接MySQL数据库
- A08_序列化与反序列化
- hdu 1551
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
- 从输入URL到浏览器显示页面发生了什么
- 关于进程和线程的几个问题
- android studio 3.0 butterknife 报错 的 解决方法
- JSP注释