首页 > 解决方案 > tomcat打印角度http客户端日志

问题描述

我有一些基于 tomcat 的应用程序和基于角度的 java 脚本来从应用程序服务器获取一些内容并在 UI 中显示它,所以我有如下所示

UI(浏览器)->tomcat 主机服务器->应用程序服务器

现在我需要使用客户端 IP 打印所有在 tomcat 日志中生成的 http 请求,我对 tomcat 配置文件进行了以下更改

 <Valve className="org.apache.catalina.valves.RemoteIpValve" />
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
              pattern="combined" resolveHosts="false"/>

我得到的日志是

10.2.107.13 - - [29/Apr/2020:15:34:16 +0530] "GET /egway/fontawesome-webfont.af7ae505a9eed503f8b8.woff2?v=4.7.0 HTTP/1.1" 304 - "http://10.2.8.4:8080/egway/styles.adcc05581e8dbd8e6115.css" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"

但是我没有得到由 angular http 代码生成的日志,所以我尝试检查我的应用程序日志,但问题是我总是将客户端 IP 作为 tomcat 服务器主机 IP。

还在 web.xml 中添加了这个过滤器,但我仍然没有在 tomcat 获得请求日志

<filter>
    <filter-name>requestdumper</filter-name>
    <filter-class>
        org.apache.catalina.filters.RequestDumperFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>requestdumper</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

那么有没有可能有这些

  1. 使用我的角度 http 请求日志打印 tomcat 日志

  2. 使tomcat将客户端IP(浏览器IP)作为x-forwarder ip转发到我的应用程序服务器

我使用的tomcat版本是8.5.51

标签: angulartomcattomcat8

解决方案


推荐阅读