存储休息控制器响应后控制器已返回对请求的响应

时间:2021-05-24 14:13:26

标签: spring-boot

我有一个休息控制器。我想为文件写入响应以进行跟踪,但是我不希望控制器等到写入完成。我们如何让控制器立即返回响应并将写入响应发布到文件。我尝试将 write 方法设为 @Async 但控制器在写入完成之前不会返回响应。知道我们如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

Logback 是 spinrg 启动中的默认记录器。使用异步 appender。像下面这样的东西。您可以在发送回之前记录响应,logback 将处理其余的。

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>myapp.log</file>
    <encoder>
      <pattern>%logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="FILE" />
  </appender>

  <root level="DEBUG">
    <appender-ref ref="ASYNC" />
  </root>
</configuration>