Назад | Перейти на главную страницу

Избегайте записи некоторых недостающих файлов в журнал ошибок Apache2

Я хотел бы избежать регистрации некоторых недостающих файлов (что дает 404) в журнал ошибок Apache2.

Я хочу сделать это на сайте обновлений Eclipse для моего плагина. Проблема в том, что код Eclipse P2 пытается получить доступ к своим файлам метаданных, таким как content.xml, content.jar, digest.zip и некоторым другим, которые недоступны на моем сайте. Когда P2 узнает об этом, он наконец достигает site.xml, который я предоставляю. В общем, все работает нормально ... но у меня куча строк вроде:

[Mon Jul 06 21:46:46 2009] [error] [client 195.91.79.90] File does not exist: ...htdocs/stable/content.jar

в моем файле error.log, который мне не очень помогает.

Одно из решений, которое приходит мне на ум, - разрешить Apache регистрироваться через grep (через pipe-logging), но я ищу лучшее решение.

Я думал о том, чтобы пометить эти запросы Директива SetEnvIfи пропуск журнала ошибок для тегированных запросов, но директива ErrorLog не поддерживает это.

Есть другие идеи?

Я нашел решение, которое мне подходит. Я добавил эти строки в .htaccess:

# Don't log missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(artifacts\.jar|content\.xml|content\.jar)$ - [R=404,L]

Он использует mod_rewrite. R = 404 сообщает об отправке кода состояния 404 Not Found, когда клиент обращается к любому из упомянутых файлов.

RewriteCode нужен, чтобы убедиться, что этот файл действительно не существует. Если я когда-нибудь помещу один из этих файлов в каталог, он будет обслуживаться как обычно.

Это прекрасно работает: упомянутые файлы больше не регистрируются в error.log (это была моя цель), но по-прежнему регистрируются в журнале доступа (со статусом 404).

Вы можете выполнить условное ведение журнала, используя mod_log_config

Это позволит вам использовать переменные среды.

пример Вот для того, чтобы не регистрировать запросы изображений.

Разве не было бы проще повысить уровень логического уровня выше, чем уровень ошибки, чтобы предупреждать или критиковать? Или у вас есть причина снизить его?