SpringCloud应用骨架开发2

Posted 最老程序员闫涛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud应用骨架开发2相关的知识,希望对你有一定的参考价值。

在上一篇博文中,我们开发了一个基本的微服务,在本篇博文中,我们将在加入日志,健康监测方面的内容。
在应用中加入日志功能,是一项基本的需求。我们在这里介绍的只是针对单个微服务的日志功能。
我们首先在应用配置文件application.yaml中加入日志定义功能:

logging:
  pattern:
    console: "%dHH:mm:ss.SSS %-5level %logger36 - %msg%n"
    file: "%dHH:mm:ss.SSS [%thread] %-5level %logger36 - %msg%n"
  level:
    org.springframework.web: DEBUG
  file: app.log

我们定义了日志格式和日志文件。在程序中使用日志功能很简单,我们以在DemoController类中写日志为例:

@RestController
@RequestMapping("/person")
public class DemoController 
    org.slf4j.Logger LOGGER = org.slf4j.LoggerFactory.getLogger(DemoController.class);
    ......
    @GetMapping("/personId")
    public Person findById(@PathVariable("personId") Long personId,
                           HttpServletRequest request) 
        String mode = request.getParameter("mode");
        LOGGER.info("test: ", "abc");
        return persons.stream().filter(item -> item.getPersonId().equals(personId)).findFirst().get();
    

我们在每个类中定义一个Logger LOGGER变量,在写日志时调用LOGGER.info/debug/trace/warn/error来写不同级别的日志。

应用健康监测

在项目根目录下的pom.xml文件中添加如下信息:

		<!-- 开始:应用健康管理 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<!-- 结束:应用健康管理 -->

此时我们启动应用,在浏览器上访问:

http://localhost:2208/acuator
"_links":"self":"href":"http://localhost:2208/actuator","templated":false,"health":"href":"http://localhost:2208/actuator/health","templated":false,"health-path":"href":"http://localhost:2208/actuator/health/*path","templated":true,"info":"href":"http://localhost:2208/actuator/info","templated":false

我们可以添加应用信息,在application.yaml文件中添加如下内容:

  info:
    name: $spring.application.name
    build:
      name: $project.name:
      artifact: $project.arfitactId:
      version: $project.version:
      time: $build.time:

此时访问http://localhost:2208/acuator/info可以看到程序的基本信息。

以上是关于SpringCloud应用骨架开发2的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud应用骨架开发

SpringCloud应用骨架开发

52、vue-skeleton-webpack-plugin骨架屏

电商项目实战——SpringBoot+MyBatis搭建基本骨架

如何阻止我的 MFC 应用程序在启动时调用 OnFileNew()?

Taro+react开发(26)taro基本骨架