Mam wiele wirtualnych hostów skonfigurowanych na serwerze WWW, każdy z własnym dziennikiem błędów i dostępem. Odpowiednie wiersze httpd.conf
są mniej więcej takie:
ErrorLog /var/log/httpd-error.log
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /var/log/httpd-access.log combined
NameVirtualHost *:80
<VirtualHost *:80>
ServerName myhost.com
ServerAlias www.myhost.com
DocumentRoot /var/www/myhost.com/htdocs
ErrorLog /var/www/myhost.com/log/error.log
CustomLog /var/www/myhost.com/log/access.log combined
</VirtualHost>
# ... many more VirtualHosts
Obecnie dostaję jakieś losowe błędy w /var/log/httpd-error.log, ale nic nie dostaję w /var/log/httpd-access.log. Czy możliwe jest duplikowanie WSZYSTKICH dostępów i błędów do udostępnionego pliku dziennika? Czy można to zrobić bez dodawania nowych wpisów do każdego VirtualHost?
źródło
Masz dwie możliwości zastosowania dyrektywy ErrorLog http://httpd.apache.org/docs/2.2/mod/core.html#errorlog
1) Użyj syslog i obsłuż duplikację w [r] syslog.conf
2) Użyj potoku, wyślij wpis dziennika do aplikacji / skryptu i obsłuż duplikację w tej aplikacji / skrypcie
źródło
Czy oglądanie wszystkich dzienników dostępu jest absolutnie konieczne? Jeśli błędy są faktycznie spowodowane żądaniem hosta vhost, w dzienniku błędów vhost powinno być zarejestrowane coś. W takim przypadku ls -t /var/www/*/log/error.log, aby ustalić, który vhost jest winowajcą, a następnie obejrzenie tylko tego pliku dziennika dostępu wydaje się być dobrym pierwszym krokiem do wyeliminowania wielu niepotrzebnych odczytów dziennika .
źródło