SpringCloud应用骨架开发2

09/15 09:18
阅读数 36

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

logging:
  pattern:
    console: "%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"
    file: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %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可以看到程序的基本信息。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部