Java/Tomcat独立,如何记录/访问所有HTTP GET请求

Noo*_*z42 38 java logging tomcat

我在独立模式下运行Tomcat."独立"部分非常重要:我不会在Tomcat面前安装Apache.

在我的问题中,关于如何实现"web bug",我得到了一个很好的答案:Java webapp:如何实现web bug(1x1像素)?

但答案是:

在您的访问日志中,您可以计算您的jpg - 输出应为"

127.0.0.1 - - [10/Jun/2010:11:38:53 +0530]"GET /mywebapp/jsp/invisible.jpg?1276150133362 HTTP/1.1"200 991

但是,正如我所担心的,我找不到这样的日志.

... $ cat apache-tomcat-6.0.26/logs/*| grep GET | wc -l

0

有很多日志.我的webapp的自定义日志肯定会被记录下来.

所以我有一些相关的问题:

  • "Tomcat独立"是否默认记录每个HTTP GET请求?

  • 如果是,默认情况下记录的每个HTTP GET请求在哪里?(我怎么能找到他们自己?)

  • 如果不是,可以将"Tomcat standalone"配置为记录每个HTTP GET请求吗?

请注意,我知道在我的情况下,我可以添加自定义日志记录以及我的web bug .jsp并在日志中搜索它,但这不是我的问题.

我的问题是关于Tomcat如何独立(再一次,独立非常重要)处理所有HTTP GET请求的日志记录.

Ric*_*arn 57

默认情况下,它不会记录请求,但如果您取消注释此阀门,则会执行以下操作conf/server.xml:

<Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs" prefix="localhost_access_log." suffix=".txt"
    pattern="common" resolveHosts="false"/>
Run Code Online (Sandbox Code Playgroud)

  • 哈,在30秒内打败我同样的答案.:-) (7认同)
  • 来自文档:警告:使用此阀门有副作用.该阀门的输出包括请求中包含的任何参数.将使用默认平台编码对参数进行解码.在Web应用程序中对request.setCharacterEncoding()的任何后续调用都将不起作用.注意:现在不推荐使用此Valve,而是使用RequestDumperFilter,它以可移植的方式执行相同的操作.此过滤器包含在示例应用程序中:请参阅源的$ CATALINA_HOME/webapps/examples/WEB-INF/classes/filters. (4认同)