Bu modül istemci isteklerinin esnek şekilde günlüklenmesi ile ilgilidir. Günlükler kişiselleştirilebilir biçemdedir ve doğrudan bir dosyaya yazılabileceği gibi boru üzerinden harici bir sürece de yazılabilir. İsteğin özelliklerine bağlı olarak bazı isteklerin günlüklere kaydedilmesi veya kaydedilmemesi mümkün kılınmıştır.
Bu modül üç yönerge içermektedir: Bir günlük dosyası oluşturmak için
İstek özellikleri biçem dizgesine “%
” imli belirteçler
yerleştirilerek günlüklenir. Bu belirteçler ve anlamları:
Belirteç | Açıklama | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
%% |
Yüzde imi. | ||||||||||
%a |
Uzak IP adresi ve isteğin portu. | ||||||||||
%{c}a |
bağlantının emsal IP adresi and portu
( | ||||||||||
%A |
Yerel IP adresi. | ||||||||||
%B |
HTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu. | ||||||||||
%b |
HTTP başlıkları hariç, yanıtın bayt cinsinden uzunluğu. OGB
biçeminde hiç bayt gönderilmemişse günlüğe '- ' yerine
'0 ' çıktılanır. | ||||||||||
%{DEĞİŞKEN}C |
İstek içinde sunucuya gönderilen DEĞİŞKEN çerezinin içeriği. Sadece 0 sürümlü çerezler tam olarak desteklenir. | ||||||||||
%D |
Mikrosaniye cinsinden isteği sunmak için harcanan zaman. | ||||||||||
%{DEĞİŞKEN}e |
DEĞİŞKEN ortam değişkeninin içeriği. | ||||||||||
%f |
Dosya ismi. | ||||||||||
%h |
Uzak konak ismi. Off değeri atanmışsa, IP adresi günlüğe kaydedilir. Bir
kaç konak için konak ismi de günlüğe kaydoluyorsa muhtemelen onların
isimlerini içeren erişim denetim yönergelerine sahipsinizdir. Bak: Require host. | ||||||||||
%H |
İstek Protokolü. | ||||||||||
%{DEĞİŞKEN}i |
İstekle birlikte sunucuya gönderilen
DEĞİŞKEN: başlık satır(lar)ının
içeriği. Diğer modüllerde (örn. %{DEĞİŞKEN}e ile
günlüğe kaydedin. | ||||||||||
%k |
Bu bağlantıda işlenen isteklerin sayısı; yani örneğin,
'1' değeri bağlantı kurulduktan sonraki ilk kalıcı bağlantıyı,
'2', ikinci bağlantıyı, ..., vb. gösterir;
| ||||||||||
%l |
Uzak kullanıcı kimliği (sağlanmışsa, identd üzerinden).
On atanmış olmadıkça bu belirteç için günlüğe
tire imi yazılır. | ||||||||||
%L |
Hata günlüğündeki istek günlük kimliği (veya bu istek için hata günlüğüne hiçbir şey kaydedilmemise '-'). Bu hataya neyin sebep olduğunu öğrenmek için ilgili hata günlüğü satırına bakın. | ||||||||||
%m |
İstek yöntemi. | ||||||||||
%{DEĞİŞKEN}n |
Diğer modüldeki DEĞİŞKEN bilgisinin içeriği. | ||||||||||
%{DEĞİŞKEN}o |
Yanıttaki DEĞİŞKEN: başlık satır(lar)ının
içeriği. | ||||||||||
%p |
Sunucunun isteği sunduğu meşru port. | ||||||||||
%{biçem}p |
Sunucunun veya istemcinin gerçek portu veya sunucunun isteği
sunduğu meşru port. Geçerli biçemler: canonical ,
local ve remote (anlamları sırasıyla:
meşru, yerel ve uzak). | ||||||||||
%P |
İsteği sunan çocuk sürecin süreç kimliği. | ||||||||||
%{biçem}P |
İsteği sunan çocuk sürecin süreç kimliği (pid ) veya
evre kimliği (tid ). Geçerli biçemler: pid ,
tid , hextid . hextid için APR
1.2.0 veya üstü gerekir. | ||||||||||
%q |
Sorgu dizgesi (bir sorgu dizgesi mevcutsa önüne bir ?
eklenir yoksa hiçbir şey eklenmez). | ||||||||||
%r |
İsteğin ilk satırı. | ||||||||||
%s |
Durum. Dahili olarak yönlendirilmiş istekler için isteğin
özgün durumudur. İsteğin son durumu için
%>s kullanınız. | ||||||||||
%t |
[18/Sep/2011:19:18:28 -0400] biçeminde isteğin
alındığı tarih ve saat. Sondaki sayı zaman diliminin GMT'ye
uzaklığıdır. | ||||||||||
%{biçem}t |
İsteğin alındığı tarih ve saat; biçem
uzatılmış strftime(3) biçeminde belirtilmelidir (genelde
yerelleştirme amaçlı). begin: (öntanımlı) ile başlayan
biçemlerde süre isteğin başlangıcına göredir. end: ile
başlayan biçemlerde ise süre isteğin işlenmesinin bi,tmesine yakın,
günlük girdisinin yazılmaya başladığı ana göredir.
strftime(3) tarafından desteklenen biçemlere ek olarak
aşağıdaki biçem dizgecikleri de desteklenmektedir:
strftime(3) biçemlemesiyle birlikte yer alamazlar fakat
çok sayıda %{biçem}t kullanılabilir.
| ||||||||||
%T |
Saniye cinsinden, isteği sunmak için harcanan zaman. | ||||||||||
%u |
Uzak kullanıcı (kimlik doğrulaması istenmişse vardır; durum kodu
(%s ) 401 ise yanlış olabilir). | ||||||||||
%U |
Herhangi bir sorgu dizgesi içermeksizin istenen URL yolu. | ||||||||||
%v |
İsteği sunan sunucunun meşru sunucu ismi ( | ||||||||||
%V |
|||||||||||
%X |
Yanıt tamamlandığında bağlantı durumu:
| ||||||||||
%I |
İstek ve başlıklar dahil alınan bayt sayısı. Sıfır olamaz. Bunu
kullanmak için | ||||||||||
%O |
Başlıklar dahil gönderilen bayt sayısı. Sıfır olamaz. Bunu
kullanmak için |
Belli öğelerin sadece belli durum kodlarıyla ilgili yanıtlarla
basılabilmesi için bu durum kodları % iminden hemen sonra virgüllerle
ayrılmış olarak yazılabilir. Olumsuzlama belirtmek için durum kodu listesinin önüne bir "!
" konabilir.
Biçem Dizgesi | Anlamı |
---|---|
%400,501{User-agent}i |
Sadece 400 ve 501 hatalarında User-agent günlüğe
kaydedilir. Diğer durum kodları için günlüğe "-" yazılır.
|
%!200,304,302{Referer}i |
200,304,302 durum kodlarından biriyle dönmeyen tüm istekler için
Referer başlığı durum koduyla birlikte günlüğe
kaydedilir. Aksi takdirde günlüğe "- " yazılır.
|
İsteğin dahili olarak yönlendirilmesinde özgün durumunun mu yoksa son
durumunun mu hesaba katılacağı "<" ve ">" değiştiricileri ile
belirtilebilir. Öntanımlı olarak %s, %U, %T, %D,
ve
%r
belirteçleri isteğin özgün durumuna bakarken diğerleri
son durumuna bakarlar. Bu bakımdan örneğin, %>s
belirteci, özgün istekteki kimliği doğrulanmış kullanıcının, dahili
olarak kimlik doğrulaması gerekmeyen bir özkaynağa yönlendirilmesi
halinde isteğin son durumunu kaydetmekte kullanılabilir.
Güvenlik nedeniyle, 2.0.46 sürümünden itibaren %r
,
%i
ve %o
belirteçlerinde basılamayan
karakterler ve diğer özel karakterler \xhh
dizilimleri biçeminde öncelenmektedir. Burada hh yerine
karakter numarasının onaltılık gösterimi yazılır. Bir tersbölü ile
öncelenmesi gereken "
ve \
ile
\n
, \t
gibi C tarzı gösterimler bu kuralın
dışındadır. 2.0.46 sürümünün öncesinde bu dizgeler öncelenmezdi ve ham
günlük dosyalarıyla çalışırken dikkatli olmak gerekirdi.
2.0 sürümünde 1.3 sürümünün aksine %b
ve
%B
biçem belirteçleri, istemciye gönderilen bayt sayısını
değil, HTTP yanıtının bayt sayısını ifade ederdi (bu yanıt, örneğin,
SSL kullanıldığında veya bağlantı koptuğunda farklı uzunlukta olur).
Artık, ağa gönderilen gerçek bayt sayısını günlüğe kaydetmek için
%O
biçem belirteci kullanılmaktadır.
Ek bilgi: %R
biçem dizgesi
herhangi bir eylemci bilgisi döndürmeyecektir.
Genelde herkesçe kullanılan günlük kaydı biçemleme dizgelerinden bazıları:
"%h %l %u %t \"%r\" %>s %b"
"%v %h %l %u %t \"%r\" %>s %b"
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-agent}i\""
"%{Referer}i -> %U"
"%{User-agent}i"
msec_frac
gibi ek biçem dizgeciklerini kullanan bir zaman
biçemi belirtmek isterseniz %{format}t
biçem dizgesini
defalarca kullanabilirsiniz:
"%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"
Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde güvenliğinizden nasıl feragat etmiş olacağınız güvenlik ipuçları belgesinde açıklanmıştır.
İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer belirtilebilir:
|
" boru karakteri ile öncelenmiş olarak günlük
bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
satırı) Daha fazla bilgi için borulu
günlüklere bakınız.
Bir borulu süreç kullanılmışsa, süreç
Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı platformlarda bile yapılandırma dosyasında bu amaçla normal bölü çizgilerini kullanmaya özen gösterilmelidir.
İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce
Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:
Üçüncü argüman isteğe bağlı olup,belli bir isteğin günlüğe kaydedilip
kaydedilmeyeceğini belirler. Koşul, sunucu ortamında belli bir değişkenin varlığı veya
yokluğu olabilir (bir 'env=!isim
' durumu).
İstenirse koşul keyfi bir mantıksal ifade
olarak da belirtilebilir. Eğer koşul sağlanmazsa istek günlüğe
kaydedilmez.
Ortam değişkenleri
Veya eski RefererIgnore
yönergesinin davranışını taklit
etmek isterseniz:
Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.
%
) içeremeyeceğine de dikkat ediniz.
Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün
kılmaması haricinde