Apache HTTP Sunucusu Sürüm 2.2

| Açıklama: | Sunucuya yapılan isteklerin günlük kayıtlarının tutulması | 
|---|---|
| Durum: | Temel | 
| Modül Betimleyici: | log_config_module | 
| Kaynak Dosyası: | mod_log_config.c | 
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
      TransferLog, günlük
      biçemini kişiselleştirmek için LogFormat ve tek başına bir günlük
      dosyasını hem tanımlayıp hem de biçemleyen CustomLog yönergesi. Her isteğin
      çok sayıda dosyaya günlüklenmesini sağlamak için yapılandırma dosyasında
      her sunucu için birden fazla  TransferLog ve
      CustomLog yönergesi belirtilebilir.
LogFormat ve CustomLog yönergelerinin biçem
      argümanı bir dizgedir. Bu dizge her isteği günlük dosyasına günlüklemek
      için kullanılır. Doğrudan günlük dosyalarına kopyalanmak üzere dizgesel
      sabitler içerebileceği gibi satırsonu ve sekme karakterleri olarak C
      tarzı "\n" ve "\t" denetim karakterlerini de içerebilir. Dizgesel sabit
      olarak kullanılan tırnak ve tersbölü imlerinin tersbölü ile öncelenmesi
      gerekir.
İ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 | ||||||
| %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. | ||||||
| %{Fesmekan}C | İstek içinde sunucuya gönderilen Fesmekan çerezinin içeriği. Sadece 0. sürüm çerezler tam olarak desteklenir. | ||||||
| %D | Mikrosaniye cinsinden isteği sunmak için harcanan zaman. | ||||||
| %{FALANCA}e | FALANCA ortam değişkeninin içeriği. | ||||||
| %f | Dosya ismi | ||||||
| %h | Uzak konak | ||||||
| %H | İstek Protokolü | ||||||
| %{Filanca}i | İstekle birlikte sunucuya gönderilen Filanca:başlık satır(lar)ının
          içeriği. Diğer modüllerde (örn.mod_headers)
          yapılan değişikliklerden etkilenir. | ||||||
| %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; KeepAlivekullanılmışsa
          değer anlamlıdır; aksi takdirde değer daima (ilk isteği
          belirten) 0’dır. 2.2.11 sürümünden beri kullanılabilmektedir. | ||||||
| %l | Uzak kullanıcı kimliği (sağlanmışsa, identd üzerinden). mod_identmodülü mevcut veIdentityCheckyönergesine değer
          olarakOnatanmış olmadıkça bu belirteç için günlüğe
          tire imi yazılır. | ||||||
| %m | İstek yöntemi | ||||||
| %{Filanca}n | Diğer modüldeki Filanca bilgisinin içeriği. | ||||||
| %{Filanca}o | Yanıttaki Filanca: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,localveremote(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.hextidiç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ı. | ||||||
| %R | Yanıt varsa yanıtı üreten eylemci. | ||||||
| %s | Durum. Dahili olarak yönlendirilen istekler için isteğin *özgün*
          durumudur --- isteğin son durumu için %>skullanınız. | ||||||
| %t | İsteğin alındığı tarih ve saat (standart ingiliz biçemi). | ||||||
| %{biçem}t | İsteğin alındığı tarih ve saat; biçem strftime(3)biçeminde belirtilmelidir (genelde
          yerelleştirme amaçlı). | ||||||
| %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 ( ServerName). | ||||||
| %V | UseCanonicalNameayarı ile
          ilgili sunucu ismi. | ||||||
| %X | Yanıt tamamlandığında bağlantı durumu: 
 (Apache 1.3’ün son sürümlerinde bu belirteç  | ||||||
| %I | İstek ve başlıklar dahil alınan bayt sayısı; sıfır olamaz. Bunu
          kullanmak için mod_logioetkin olmalıdır. | ||||||
| %O | Başlıklar dahil gönderilen bayt sayısı; sıfır olamaz.Bunu
          kullanmak için mod_logioetkin olmalıdır. | 
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. Örneğin,
        "%400,501{User-agent}i" belirteci,
        User-agent başlığını sadece 400 ve 501 hatalarında
        günlüğe kaydeder. Diğer durum kodları için günlüğe "-"
        yazılır. Durum kodlarını olumsuzlamak için başa bir "!"
        konabilir. Örneğin, "%!200,304,302{Referer}i" belirteci,
        200,304,302 durum kodlarından biriyle dönmeyen tüm istekler için
        Referer başlığını durum koduyla birlikte günlüğe
        kaydedecektir.
İ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
        mod_logio modülü tarafından sağlanan %O
        biçem belirteci kullanılmaktadır.
Dikkat: mod_cache standart bir eylemci olarak değil
        hızlandırılmış bir eylemci olarak gerçeklenmştir. Bu bakımdan
        %R biçem dizgesi içerik önbelleklemesi ile ilgili
        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"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.
| Açıklama: | Günlük girdilerini diske yazmadan önce bellekte tamponlar | 
|---|---|
| Sözdizimi: | BufferedLogs On|Off | 
| Öntanımlı: | BufferedLogs Off | 
| Bağlam: | sunucu geneli | 
| Durum: | Temel | 
| Modül: | mod_log_config | 
| Uyumluluk: | 2.0.41 ve sonrasında mevcuttur. | 
BufferedLogs yönergesi,
      mod_log_config modülünün çeşitli günlük girdilerini her
      isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak
      üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli
      disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece
      sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı
      yapılandırılamaz.
| Açıklama: | Çerezleri günlüğe kaydetmek için dosya ismi belirtmekte kullanılır. | 
|---|---|
| Sözdizimi: | CookieLog dosya-adı | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Temel | 
| Modül: | mod_log_config | 
| Uyumluluk: | Bu yönergenin kullanımı önerilmemektedir. | 
CookieLog yönergesi çerezleri günlüğe kaydetmek
      için dosya ismi belirtir. Dosya isminin ServerRoot değerine göre belirtildiği
      varsayılır. Yönerge mod_cookies ile uyumluluk için vardır
      ve kullanımı önerilmemektedir.
| Açıklama: | Günlük dosyasın ismini ve girdi biçemini belirler. | 
|---|---|
| Sözdizimi: | CustomLog  dosya|borulu-süreç
biçem|takma-ad
[env=[!]ortam-değişkeni] | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Temel | 
| Modül: | mod_log_config | 
CustomLog yönergesi istekleri günlüğe kaydetmek
      için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük
      kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla
      şarta bağlı kılınabilir.
İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer belirtilebilir:
ServerRoot yönergesinin
        değerine göreli bir dosya ismi.|" 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ükler ile ilgili ek bilgilere bakın.
      Bir borulu süreç kullanılmışsa, süreç httpd’yi
        başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
        başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
        programın güvenilir olması önemlidir.
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
      LogFormat yönergesi ile
      tanımlanmış bir takma-ad ya da içeriği Günlük Girdilerinin Kişiselleştirilmesi bölümünde
      açıklanmış bir biçem dizgesi olabilir.
Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:
      # Biçem dizgesi yerine takma ad içeren CustomLog
      LogFormat "%h %l %u %t \"%r\" %>s %b" common
      CustomLog logs/access_log common
      
      # Biçem dizgesinin kendisini içeren CustomLog
      CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"
    
Üçüncü argüman isteğe bağlı olup, sunucu ortamında belli bir değişkenin
      varlığına bağlı olarak belli bir isteğin günlüğe kaydedilip
      kaydedilmeyeceğini belirler. Eğer istek için belirtilen ortam değişkeni mevcutsa (veya
      'env=!değişken' durumunda mevcut değilse) istek
      günlüğe kaydedilir.
Ortam değişkenleri mod_setenvif
      ve/veya mod_rewrite modülleri kullanılarak her istek
      için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan
      istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek
      isterseniz:
      SetEnvIf Request_URI \.gif$ gif-image
      CustomLog gif-requests.log common env=gif-image
      CustomLog nongif-requests.log common env=!gif-image
    
Veya eski RefererIgnore yönergesinin davranışını taklit
      etmek isterseniz:
    SetEnvIf Referer example\.com yerel-atif
    CustomLog referer.log referer env=!yerel-atif
    
| Açıklama: | Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar. | 
|---|---|
| Sözdizimi: | LogFormat biçem|takma-ad
[takma-ad] | 
| Öntanımlı: | LogFormat "%h %l %u %t \"%r\" %>s %b" | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Temel | 
| Modül: | mod_log_config | 
Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.
LogFormat yönergesi iki şekilde kullanılabilir.
      Tek argüman belirtilebilen ilkinde daha sonra
      TransferLog yönergelerinde belirtilen günlüklerde
      kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda
      açıklanan biçem belirteçlerinden
      oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir
      LogFormat yönergesinde tanımlanmış bir günlük
      biçemine atıf yapan bir takma-ad da belirtilebilir.
LogFormat yönergesinin ikinci kullanım şeklinde
      biçem bir takma-ad için tanımlanır. Bu takma ad
      daha sonraki LogFormat veya CustomLog yönergelerinde aynı biçem
      dizgesini uzun uzadıya yazmamak için takma-ad olarak
      kullanılır. Bir LogFormat yönergesi bir takma ad
      tanımlamaktan başka bir şey yapmaz; yani, yaptığı iş
      sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya
      biçemi öntanımlı hale getirmez. Bu bakımdan sonraki TransferLog yönergelerini de
      etkilemeyecektir. Ayrıca, LogFormat yönergesi bir
      takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma
      adın yüzde imi (%) içeremeyeceğine de dikkat ediniz.
      LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
    
| Açıklama: | Bir günlük dosyasının yerini belirtir. | 
|---|---|
| Sözdizimi: | TransferLog dosya|borulu-süreç
[takma-ad] | 
| Bağlam: | sunucu geneli, sanal konak | 
| Durum: | Temel | 
| Modül: | mod_log_config | 
Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün
      kılmaması haricinde CustomLog yönergesi gibidir. Günlük biçemi yerine kendinden
      önce yer alan bir LogFormat yönergesinde tanımlanan
      bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı
      belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
      \"%{User-agent}i\""
      TransferLog logs/access_log