Невозможно сделать tomcat log базовыми сообщениями об ошибках типа 404 - PullRequest
2 голосов
/ 23 июля 2010

Мне нужен журнал, в который tomcat помещает 404 ошибки типа.Я использую: Tomcat 6 на Centos 5.2

Я получил 404 ошибки в приложениях, развернутых на Tomcat.Мне не удалось найти журналы, в которые tomcat помещает сообщения, когда он не может найти запрошенные файлы и другие простые ошибки.- Я не говорю о материалах, регистрируемых приложениями, просто о типе 404.

Я проверил / logs и обнаружил следующие типы файлов

  • catalina.out: содержит сообщения о запуске и завершении работы(в основном сообщения INFO)
  • catalina..log: содержит те же данные, что и указанный выше файл, для своей даты
  • host-manager.year-mm-dd.log: empty (кажется, предназначен дляtomcat manger, я этим не пользуюсь)
  • localhost.year-mm-dd.log: некоторые сообщения журнала, связанные с приложением (org.apache.catalina.core.ApplicationContext ... сообщения INFO)
  • manager.year-mm-dd.log: empty

Итак, ни один из них не содержит 404 ошибок.Так как я установил tomcat, просто распаковав его в / usr / share, я почти уверен, что в / 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.html JoseK также предложил написать для этого собственный клапан, нокажется, слишком много работы для небольшого требования.Кто-нибудь знает более простой способ ???

1 Ответ

3 голосов
/ 24 июля 2010

Tomcat не регистрирует запросы по умолчанию, но может это сделать, если вы раскомментируете эту строку в conf/server.xml:

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

Это также запишет ваши 404-ые.

Судя по комментариям ОП, решение состоит в том, чтобы написать собственный AccessLogValve. Расширение Tomcat и добавление желаемого формата вывода.

См. http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html и http://www.devx.com/Java/Article/32730/1954 для идей.

...