当前位置: 首页 > 知识库问答 >
问题:

如何在文件中记录HttpRequest和HttpResponse?

郝冥夜
2023-03-14

有人可以解释在文件中记录HttpRequest和Http响应的任何技术吗?

我们使用的是Spring MVC/Spring Rest。

我们想要的是在处理请求之前拦截请求并记录它。同样的方法是在发送响应之前拦截响应并记录它。

提前非常感谢。

共有2个答案

拓拔欣嘉
2023-03-14

接受的答案已经正确,添加了基于注释的配置。将以下bean添加到配置中。

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
    CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
    loggingFilter.setIncludeClientInfo(true);
    loggingFilter.setIncludeQueryString(true);
    loggingFilter.setIncludePayload(true);
    return loggingFilter;
}
唐弘益
2023-03-14

对于记录请求,Spring有AbstractRecestLoggingFilter类(实际上是子类之一)。这可以用来记录传入的请求(处理前后)。

根据配置,这可能包括有效负载、客户端信息和完整的URL(包括erQuest参数)。默认情况下,所有这三个都被禁用,但可以通过配置启用(有关详细信息,请参阅javadoc)。

<filter>
    <filter-name>requestLoggingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CommonsRequestLoggingFilter</filter-class>
    <init-param>
        <param-name>includeClientInfo</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includePayload</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includeQueryString</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>requestLoggingFilter</filter-name>
    <servlet-name>dispatcherServlet</servlet-name>
</filter-mapping>

过滤器现在将使用Commons日志记录器将所有内容记录到日志文件中。

 类似资料:
  • 问题内容: 任何人都可以解释将HttpRequest和HttpResponse记录在文件中的任何技术。 我们正在使用Spring MVC / Spring Rest。 我们想要的是在处理请求之前将其拦截并记录下来。用同样的方法在发送响应之前先截取响应并将其记录下来。 非常感谢。 问题答案: 为了记录请求,Spring提供了一个类(实际上是子类之一)。这可用于记录传入的请求(处理之前和之后)。 根据

  • 问题内容: 是否可以装饰/扩展python标准日志记录系统,以便在调用日志记录方法时也将文件和文件的行号记录在调用它的位置,或者也可以记录调用该文件的方法? 问题答案: 当然,请检查日志记录文档中的格式化程序。特别是lineno和pathname变量。 %(pathname)s 发出日志记录调用的源文件 的 完整路径名(如果有)。 %(filename)s 路径名 的 文件名部分。 %(modul

  • 问题内容: 我想记录stdout和stderr来记录文件,这就是我尝试过的方法。 然后,我想将控制台输出记录在文件中。如 我能做什么? 问题答案: 你提到的不是来自flask的记录器的日志消息中,来自 的记录,你还需要你的处理程序添加到该记录器实例手段,使其工作,如: 如果你查看werkzeug如何初始化其记录器,则将看到只有在尚未设置日志记录的情况下,它才会添加默认处理程序。这意味着,如果你在w

  • 我正在为日志创建一个Spring Bootjar。我在我的主要spring boot项目中添加了这个依赖项。我可以在主项目的控制台中获取日志。但是没有登录到文件中。 我在文件中添加了以下application.yml 谁能帮我一下吗。提前谢谢!

  • 问题内容: 我可以将所有消息定向到log.txt文件: 但是我也如何在控制台中获取日志消息? 问题答案: 使用 MultiWriter创建一个写入器,该写入器将其写入复制到所有提供的写入器中,类似于Unix tee(1)命令

  • 我有一个csv,我需要能够打印记录的总数,这是如何做到的?我尝试使用总和语句和计数,但似乎没有工作