Избегайте регистрации определенных отсутствующих файлов в журнале ошибок 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 не поддерживает это.

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

3 ответа

Решение

Я нашел решение, которое работает для меня. Я добавил эти строки в.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

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

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

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

Другие вопросы по тегам