gpt4 book ai didi

tomcat - 无法让tomcat记录基本的404类型错误信息

转载 作者:行者123 更新时间:2023-11-28 21:57:18 26 4
gpt4 key购买 nike

我需要 tomcat 放置 404 类型错误的日志。我正在使用:Centos 5.2 上的 tomcat 6

我在 tomcat 上部署的应用程序中遇到 404 错误。当无法找到请求的文件和其他简单错误时,我无法找到 tomcat 放置消息的日志。- 我不是在谈论应用程序记录的内容,只是 404 类型的内容。

我检查了/logs 并发现了以下类型的文件

  • catalina.out :包含启动和关闭消息(主要是 INFO消息)
  • catalina..log : 包含与上述日期相同的数据
  • host-manager.year-mm-dd.log:空(似乎是为tomcat manger准备的,我没用过)
  • localhost.year-mm-dd.log : 一些应用程序相关的日志消息(org.apache.catalina.core.ApplicationContext...信息消息)
  • manager.year-mm-dd.log:空

因此,这些都不包含 404 错误。因为我通过简单地在/usr/share 中解压来安装 tomcat,所以我很确定它在/var/log 中没有日志(我检查过,catlina 或 tomcat 没有任何日志)。

正如 JoseK 所建议的那样,我已经尝试在 server.xml 中配置一个阀

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

这创建了文件/logs/localhost_access_log.txt,其中包含传入请求的详细信息,例如

192.168.40.1 - - [23/Jul/2010:09:14:13 +0500] "GET /<project url>/files/file1.html HTTP/1.1" 404 1084

它包含请求 url://files/file1.html我需要它找不到的文件的路径:/usr/share...../files/file1.htmlJoseK 进一步建议为此编写一个自定义阀门,但对于一个小需求来说似乎工作量太大了。谁知道更简单的方法???

最佳答案

默认情况下 Tomcat 不记录请求,但如果您在 conf/server.xml 中取消注释此行,它可以记录请求:

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

这也会记录您的 404。

从 OP 的评论来看,解决方案似乎是编写一个自定义的 AccessLogValve。扩展 Tomcat 并添加所需的输出格式。

参见 http://tomcat.apache.org/tomcat-5.5-doc/config/valve.htmlhttp://www.devx.com/Java/Article/32730/1954的想法。

关于tomcat - 无法让tomcat记录基本的404类型错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com