Tam URL'yi günlüğe kaydetmek için Apache CustomLog


16

CustomLogİstenen tam URL'yi (veya en azından URL'nin ana bilgisayar bölümünü) günlüğe kaydetmek için apache konfigürasyonuma bir yönerge eklemek istiyorum . Aynı apache örneği tarafından işlenen birkaç etki alanım var ve günlüklerdeki etki alanlarını ayırt edebilmek istiyorum (şimdi tüm gördüğüm "GET /" olduğu için). LogFormat'taki belgelerin%U URL'nin yol kısmını yazdırmak için listelediğini görüyorum , ancak ana bilgisayarı arıyorum.

Yanıtlar:


20

LogFormatBelgeleri okumaya devam edin; şunları bulabilirsiniz:

%...{Foobar}i:  The contents of Foobar: header line(s) in the request
                sent to the server.

Bu, yapılandırmanıza dahil edebileceğiniz anlamına gelir:

%{Host}i

%vVe %Vdirektifler de istediğini elde edebilir.

% v her zaman değeri olacaktır ServerName(sanal sunucunuzun "standart adı"). %V olabilir değeri olması ServerNameveya HTTP değerinin olabilir HostEğer var olup olmadığına bağlı olarak başlık, UseCanonicalNameyapılandırmanızda etkin (ve olsun veya olmasın istemci verilen Hostbaşlık).


Will %{Host}ibile HTTP / 1.0 için çalışmak? %Vilk bakışta doğru görünüyor, teşekkürler!
jrdioko

% {Host} i (veya herhangi bir% {...} i construct) öğesinin, yalnızca bu başlık istekte gerçekten varsa bir sonuç üreteceğine inanıyorum. HTTP / 1.0 için faydalı olmasını beklemiyordum.
larsks

Bir daha açıklama: Yani %Vaynı olacaktır %{Host}ieğer UseCanonicalNamedevre dışı?
jrdioko

1
Belgelere göre, "UseCanonicalName kapalıyken Apache, varsa istemci tarafından sağlanan ana bilgisayar adını ve bağlantı noktasını kullanarak kendinden referanslı URL'ler oluşturur (aksi takdirde yukarıda tanımlandığı gibi standart adı kullanır)." Bu nedenle %V, başlık ServerNameyoksa kullanılır Host.
larsks

2

'% v' SunucuAdı istediğiniz gibi olabilir mi?


Durumumda %vher zaman aynı dizeyi döndürüyor gibi görünüyor : URL'de hangi etki alanının göründüğünden bağımsız olarak SunucuAdı değeri. Ama %Vdoğru olanı yapıyor gibi görünüyor.
jrdioko

Bu sanal ev sahibi adı ile ilgilidir
Robert

2

%vGünlük biçiminize ekleyin .

Bunun gibi bir şey:

LogFormat "%v - %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined-vhost
CustomLog /log/file/location combined-vhost

1
Durumumda %vher zaman aynı dizeyi döndürüyor gibi görünüyor : URL'de hangi etki alanının göründüğünden bağımsız olarak SunucuAdı değeri. Ama %Vdoğru olanı yapıyor gibi görünüyor.
jrdioko

2

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Yönlendiren} i \ "\"% {Kullanıcı-Aracı} i \ "% {Ana Bilgisayar} i% U% q "kombine

%{Host}i%U%qtam url verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.