课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第2章 架构后端项目
主讲老师: 风间影月
课程内容
logback日志
在SpringBoot当中,默认使用的日志框架为ch.qos.logback的日志框架
我们需要将logback-spring.xml导入到项目工程当中。
property的name属性为LOG_HOME是规定项目日志存储的路径。
appender是设置日志输出方式,在课程当中使用了两种,一种是控制台输出,另一种是文件输出。具体代码如下
<!-- Console 输出设置 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%white(%d{mm:ss.SSS}) %green([%thread]) %cyan(%-5level) %yellow(%logger{36}) %magenta(-) %black(%msg%n)</pattern> <charset>utf8</charset> </encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件输出的文件名 --> <fileNamePattern>${LOG_HOME}/service-admin.%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender>
通过root标签可以设置日志等级。
<root level="info"> <appender-ref ref="FILE"/> <appender-ref ref="CONSOLE"/> </root>
logback日志使用:
final static Logger logger = loggerFactory.getLogger(HelloController.class); logger.info("XXX");
多环境profile
在实际的企业开发当中,实际上是会分为多个运行环节。比如:开发环境、测试环境、生产环境等等
配置dev(开发环境)环境:
spring: profiles: active: dev
然后创建application-dev.yml,SpringBoot会自动去匹配dev这个后缀,与avtice保持一致。
课程收获
logback-spring.xml配置详细介绍
(1)主要结构
根节点< configuration >包含以下属性:
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
多环境配置
1.创建多环境配置文件
创建多环境配置文件时,需要遵循Spring Boot允许的命名约定来命令,格式为application-{profile}.properties,其中{profile}为对应的环境标识。
我们在resources目录下分别创建application-dev.properties、application-test.properties、application-prod.properties三个配置文件,对应开发环境、测试环境和生产环境。
application.properties为项目主配置文件,包含项目所需的所有公共配置。
application-dev.properties为开发环境配置文件,包含项目所需的单独配置。
application-test.properties为测试环境配置文件。
application-prod.properties为生产环境配置文件。
2. 修改配置文件
通常情况下,开发环境、测试环境和生产环境使用的数据库是不一样的,所以接下来以不同环境配置不同数据库为例来演示多环境的配置。
首先我们修改application.properties,修改配置系统的启动端口:
server.port=8088
application.properties 文件包含项目所需的所有公共配置,这里配置系统的启动端口,所有环境的启动端口都是8088。
然后我们可以修改dev、test、prod的环境配置,比如我们增加数据库的连接配置。
首先在pom.xml文件中引入依赖
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
在dev文件中增加数据库连接:
# 指定数据库驱动 spring.datasource.driver-class-name=com.mysql.jdbc.Driver # 数据库jdbc连接url地址 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test # 数据库账号密码 spring.datasource.username=root spring.datasource.password=123456
其他环境的配置文件修改对应的配置连接即可。
3. 多环境的切换
上面我们配置了多环境,那么在实际测试、运行过程中如何切换系统运行环境呢?
我们通过修改application.properties配置文件中的spring.profiles.active配置项来激活相应的运行环境。如果没有指定任何profile的配置文件,springboot默认会启动application-default.properties(默认环境)
最后通过java -jar命令启动项目时,需要指定启动环境:
java -jar xxx.jar --spring.profiles.active=dev
在程序打包之后,可以在命令行中使用java-jar的方式启动,并设置启动参数spring.profiles.active=dev,以开发环境为默认配置。