github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/logs.html.tr.utf8 (about)

     1  <?xml version="1.0" encoding="UTF-8"?>
     2  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     3  <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head>
     4  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>Günlük Dosyaları - Apache HTTP Sunucusu Sürüm 2.2</title>
    11  <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
    14  <script src="./style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/logs.html" rel="canonical" /></head>
    18  <body id="manual-page"><div id="page-header">
    19  <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
    20  <p class="apache">Apache HTTP Sunucusu Sürüm 2.2</p>
    21  <img alt="" src="./images/feather.gif" /></div>
    22  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
    23  <div id="path">
    24  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.2</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
    25              <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p>
    26          <p>You may follow <a href="http://httpd.apache.org/docs/current/logs.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Günlük Dosyaları</h1>
    27  <div class="toplang">
    28  <p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
    29  <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
    30  <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
    31  <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
    32  <a href="./tr/logs.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    33  </div>
    34  <div class="outofdate">Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.</div>
    35  
    36      <p>Bir HTTP sunucusunu verimli şekilde yönetebilmek için oluşabilecek
    37        sorunlardan başka sunucunun başarımı ve etkinliği hakkında da bazı geri
    38        bildirimler almak gerekir. Apache HTTP Sunucusu çok kapsamlı ve esnek
    39        bir günlükleme yeteneğine sahiptir. Bu belgede sunucunun günlükleme
    40        yeteneğini nasıl yapılandıracağınızdan ve günlük kayıtlarını nasıl
    41        yorumlayacağınızdan bahsedilecektir.</p>
    42    </div>
    43  <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#security">Güvenlik Uyarısı</a></li>
    44  <li><img alt="" src="./images/down.gif" /> <a href="#errorlog">Hata Günlüğü</a></li>
    45  <li><img alt="" src="./images/down.gif" /> <a href="#accesslog">Erişim Günlüğü</a></li>
    46  <li><img alt="" src="./images/down.gif" /> <a href="#rotation">Günlük Çevrimi</a></li>
    47  <li><img alt="" src="./images/down.gif" /> <a href="#piped">Borulu Günlükler</a></li>
    48  <li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Sanal Konaklar</a></li>
    49  <li><img alt="" src="./images/down.gif" /> <a href="#other">Diğer Günlük Dosyaları</a></li>
    50  </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
    51  <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
    52  <div class="section">
    53  <h2><a name="security" id="security">Güvenlik Uyarısı</a></h2>
    54      
    55  
    56      <p>Apache’nin günlük dosyalarını yazdığı dizine yazabilen birinin sunucuyu
    57        başlatan kullanıcı kimliğine (bu genellikle root olur) erişim
    58        kazanabileceğine hemen hemen kesin gözüyle bakılabilir. Sonuçlarının
    59        neler olacağını kestiremiyorsanız günlüklerin yazıldığı dizinde <em>hiç
    60        kimseye</em> yazma erişimi vermeyin; ayrıntılı bilgi için <a href="misc/security_tips.html">güvenlik ipuçları</a> belgesine
    61        bakınız.</p>
    62  
    63      <p>Buna ilaveten, günlük dosyaları istemci tarafından sağlanmış bilgiler
    64        de içerebilir. Bu nedenle, kötü niyetli istemcilerin günlük dosyalarına
    65        denetim karakterleri girmeleri olasılığına karşı ham günlükler ele
    66        alınırken dikkatli olunmalıdır.</p>
    67    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
    68  <div class="section">
    69  <h2><a name="errorlog" id="errorlog">Hata Günlüğü</a></h2>
    70      
    71      <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td /><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
    72  
    73      <p>İsmi ve yeri <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> yönergesi
    74        ile belirtilen sunucu hata günlüğü, en önemli günlük dosyasıdır. Apache
    75        httpd tarafından istekler işlenirken saptanan hatalar ve tanı bilgileri
    76        bu dosyaya gönderilir. Sunucuyu başlatırken veya sunucu çalışırken bir
    77        sorunla karşılaşıldığında, neyin yanlış gittiğini öğrenmek için
    78        bakılacak ilk yer burasıdır. Günlük kaydı çoğunlukla sorunun nasıl
    79        düzeltileceği ile ilgili ayrıntıları da içerir.</p>
    80  
    81      <p>Hata günlüğü normal olarak bir dosyaya yazılır (genellikle, dosyanın
    82        ismi Unix sistemlerinde <code>error_log</code>, Windows ve OS/2’de ise
    83        <code>error.log</code>’dur). Ayrıca, Unix sistemlerinde sunucunun
    84        hataları <code>syslog</code>’a veya <a href="#piped">borulamak suretiyle
    85        bir programa</a> aktarması da mümkündür.</p>
    86  
    87      <p>Hata günlüğünün biçemi anlaşılır olup içeriği kısmen serbestçe
    88        belirlenir. Çoğu hata günlüğü girdisinde bulunan belli başlı bilgiler
    89        vardır. Örnek tipik bir hata iletisi içermektedir:</p>
    90  
    91      <div class="example"><p><code>
    92        [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1]
    93        client denied by server configuration:
    94        /export/home/live/ap/htdocs/test
    95      </code></p></div>
    96  
    97      <p>Günlük girdisinin ilk öğesi iletinin yazıldığı tarih ve saatten oluşur.
    98        İkinci öğe raporlanan bilginin önem derecesini belirtir. Hata günlüğüne
    99        gönderilecek hata türlerinin önem seviyesini belirlemek için <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> yönergesi kullanılır. Üçüncü öğe
   100        hatanın üretilmesine sebep olan istemcinin IP adresini içerir. Kalanı
   101        iletinin kendisidir (duruma bakılırsa sunucu istemci erişimini reddetmek
   102        üzere yapılandırılmış). Sunucu istenen belgenin (belge yolunu değil)
   103        dosya sistemindeki yolunu raporlamıştır.</p>
   104  
   105      <p>Hata günlüğünde görünebilecek ileti çeşitliliği oldukça fazladır. Çoğu
   106        yukarıdaki örneğin benzeridir. Hata günlüğü ayrıca, CGI betiklerinin
   107        hata ayıklama çıktılarını da içerir. Bir CGI betiği tarafından standart
   108        hataya (<code>stderr</code>) yazılan her türlü bilgi doğrudan hata
   109        günlüğüne kopyalanır.</p>
   110  
   111      <p>Hata günlüğünü bilgi ekleyerek veya kaldırarak kişiselleştirmek
   112        mümkündür. Bununla birlikte, hata günlüğü girdilerinin ilgili olduğu
   113        isteklerin <a href="#accesslog">erişim günlüğünde</a> de girdileri
   114        vardır. Örneğin, yukarıdaki girdi, erişim günlüğünde 403 durum kodlu bir
   115        girdiyle ilgilidir. Erişim günlüğünü de kişiselleştirmek mümkün
   116        olduğundan hata durumlarında bu günlük dosyasını da kullanarak daha
   117        fazla bilgi sağlayabilirsiniz.</p>
   118  
   119      <p>Sunucuyu denerken olası sorunlara karşı hata günlüğünü sürekli
   120        izlemelisiniz. Unix sistemlerinde bunu şöyle bir komutla
   121        sağlayabilirsiniz:</p>
   122  
   123      <div class="example"><p><code>
   124        tail -f error_log
   125      </code></p></div>
   126    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   127  <div class="section">
   128  <h2><a name="accesslog" id="accesslog">Erişim Günlüğü</a></h2>
   129      
   130  
   131      <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_setenvif.html">mod_setenvif</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li></ul></td></tr></table>
   132  
   133      <p>Sunucu erişim günlüğü sunucu tarafından işleme alınan tüm istekleri
   134        kaydeder. Erişim günlüğünün yeri ve içeriği  <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi ile belirlenir.
   135        <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile
   136        günlük içeriğini kişiselleştirmek mümkündür. Bu bölümde sunucunun
   137        bilgileri erişim günlüğüne kaydetmesi için nasıl yapılandırılacağından
   138        bahsedilecektir.</p>
   139  
   140      <p>Şüphesiz, bilginin erişim günlüğünde saklanması günlük yönetiminde ilk
   141        adımı oluşturur.  Sonraki adım yararlı istatistikleri üretmek için bu
   142        bilgiyi incelemektir. Günlük incelemesi bu belgenin kapsamına dahil
   143        değildir ve aslında bu işlem sunucunun yaptığı işlerden biri değildir.
   144        Bu konu ve günlük incelemesi yapan uygulamalar hakkında daha ayrıntılı
   145        bilgi edinmek için <a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">dmoz.org</a> veya <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">Yahoo</a>’ya bakınız.</p>
   146  
   147      <p>Apache httpd’nin çeşitli sürümlerinde erişim günlüklerini denetlemek
   148        için kullanılan diğer modüller ve yönergeler arasında mod_log_referer,
   149        mod_log_agent modülleri ve <code>TransferLog</code> yönergesi
   150        sayılabilir. Artık, daha eski tüm diğer yönergelerin işlevselliklerini
   151        bir araya toplayan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanılmaktadır.</p>
   152  
   153      <p>Erişim günlüğünün girdi biçemi kolayca isteğe göre
   154        düzenlenebilmektedir. Biçemi belirtmekte kullanılan biçem dizgesi, C
   155        tarzı printf(1) biçem dizgesini andırır. Sonraki bölümlerde bazı
   156        örneklere yer verilmiştir. Biçem dizgesini oluşturan belirteçlerin tam
   157        listesi için <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code> belgesinin <a href="mod/mod_log_config.html#formats">Günlük Girdilerinin
   158        Kişiselleştirilmesi</a> bölümüne bakınız.</p>
   159  
   160      <h3><a name="common" id="common">Ortak Günlük Biçemi (OGB)</a></h3>
   161        
   162  
   163        <p>Erişim günlüğü için sıklıkla kullanılan bir yapılandırma:</p>
   164  
   165        <div class="example"><p><code>
   166          LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
   167          CustomLog logs/access_log common
   168        </code></p></div>
   169  
   170        <p>İlk satırda belli bir biçem dizgesi için <code>common</code> diye bir
   171          <em>takma ad</em> tanımlanmaktadır. Biçem dizgesi, sunucuya hangi
   172          belli bir bilgi parçalarını günlükleyeceğini söyleyen % imli biçem
   173          belirteçlerinden oluşur. Biçem dizgesine ayrıca dizgesel sabitler de
   174          yerleştirilebilir ve bunlar erişim günlüğüne oldukları gibi
   175          kopyalanırlar. Biçem dizgesi içinde çift tırnak karakteri (") biçem
   176          dizgesini vaktinden önce sonlandırmaması için ters bölü çizgisi ile
   177          öncelenmelidir. Biçem dizgesi ayrıca, satır sonlarını belirtmek için
   178          "<code>\n</code>" ve sekmeleri belirtmek için "<code>\t</code>"
   179          denetim karakterlerini de içerebilir.</p>
   180  
   181        <p><code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi
   182          evvelce tanımlanmış bir <em>takma adı</em> kullanarak yeni bir günlük
   183          dosyası tanımlar. Erişim günlüğünün dosya ismi bölü çizgisi ile
   184          başlamadıkça dosya yolunun <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> değerine göreli olduğu varsayılır.</p>
   185  
   186        <p>Yukarıdaki yapılandırma günlük dosyasına girdileri Ortak Günlük
   187          Biçemi (Common Log Format) adı verilen standart biçemde yazar.
   188          Bu standart biçem başka HTTP sunucuları tarafından da kullanılır ve
   189          çoğu günlük inceleme yazılımı tarafından tanınır. Ortak Günlük
   190          Biçeminde üretilen günlük girdileri şöyle görünür:</p>
   191  
   192        <div class="example"><p><code>
   193          127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
   194          /apache_pb.gif HTTP/1.0" 200 2326
   195        </code></p></div>
   196  
   197        <p>Bu günlük girdisini parça parça açıklayalım:</p>
   198  
   199        <dl>
   200          <dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
   201  
   202          <dd>Bu, sunucuya istek yapan istemcinin (uzak konağın) IP adresidir.
   203            Eğer <code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code>
   204            yönergesine <code>On</code> değeri atanmışsa sunucu bu IP adresi
   205            için DNS sorgusu yapacak ve IP adresi yerine bulduğu konak ismini
   206            yazmaya çalışacaktır. Bununla birlikte, bu işlem sunucuyu epeyce
   207            yavaşlattığından önerilmemektedir. Konak isimlerini saptamak için en
   208            iyisi günlük girdilerini <code class="program"><a href="./programs/logresolve.html">logresolve</a></code> gibi bir
   209            günlük işlemcisinden geçirmektir. Burada raporlanan IP adresi
   210            doğrudan istemcinin IP adresi olmayabilir. Eğer sunucu ile istemci
   211            arasında bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP
   212            adresi olacaktır.</dd>
   213  
   214          <dt><code>-</code> (<code>%l</code>)</dt>
   215  
   216          <dd>Çıktıdaki bir "tire" imi istenen bilgi parçasının mevcut olmadığı
   217            anlamına gelir. Bu durumda, mevcut olmayan bilgi istemci makine
   218            üzerinde <code>identd</code> tarafından belirlenen istemcinin RFC
   219            1413 kimliğidir. Bu bilgi oldukça güvenilmezdir ve sıkıca denetlenen
   220            iç ağlar haricinde hemen hemen asla kullanılmamalıdır. Apache,
   221            <code class="directive"><a href="./mod/mod_ident.html#identitycheck">IdentityCheck</a></code> yönergesine
   222            <code>On</code> değeri atanmış olmadıkça bu bilgiyi saptamaya
   223            uğraşmaz.</dd>
   224  
   225          <dt><code>frank</code> (<code>%u</code>)</dt>
   226  
   227          <dd>Bu, belge isteğinde bulunan kişinin HTTP kimlik doğrulamasıyla
   228            saptanan kullanıcı kimliğidir. Bu değer CGI betiklerine
   229            <code>REMOTE_USER</code> ortam değişkeni ile sağlanır. Eğer istek
   230            için durum kodu 401 ise (aşağıya bakınız) henüz kullanıcının kimliği
   231            doğrulanmamış olacağından bu değere güvenilmemelidir. Eğer belge
   232            parola korumalı değilse günlüğün bu kısmı da yukarıdaki gibi
   233            "<code>-</code>" olacaktır.</dd>
   234  
   235          <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
   236          (<code>%t</code>)</dt>
   237  
   238          <dd>İsteğin alındığı tarih ve saat. Biçemi şöyledir:
   239  
   240            <p class="indent">
   241              <code>[gün/ay/yıl:saat:dakika:saniye dilim]<br />
   242               gün&nbsp;&nbsp;&nbsp;&nbsp;= 2 hane<br />
   243               ay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 3 harf<br />
   244               yıl&nbsp;&nbsp;&nbsp;&nbsp;= 4 hane<br />
   245               saat&nbsp;&nbsp;&nbsp;= 2 hane<br />
   246               dakika = 2 hane<br />
   247               saniye = 2 hane<br />
   248               dilim&nbsp; = (`+' | `-') 4 hane</code>
   249            </p>
   250            Günlük biçem dizgesinde zaman gösterim biçemini
   251            <code>%{<em>biçem</em>}t</code> şeklinde belirtmek de mümkündür.
   252            Buradaki <code><em>biçem</em></code> dizgesi, stardart C
   253            kütüphanesindeki <code>strftime(3)</code> işlevi için tanımlanmış
   254            biçem belirteçleriyle oluşturulabilir.
   255          </dd>
   256  
   257          <dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
   258          (<code>\"%r\"</code>)</dt>
   259  
   260          <dd>İstemciden alınan istek satırının çift tırnaklar arasında
   261            gösterilmesi istenmiştir. İstek satırı en yararlı bilgi parçalarını
   262            içerir. Birincisi, istemci tarafından kullanılan yöntem
   263            <code>GET</code>’miş. İkinci olarak istemci
   264            <code>/apache_pb.gif</code> dosyasını istemiş ve üçüncü olarak
   265            istemci <code>HTTP/1.0</code> protokolünü kullanmış. İstek satırının
   266            bazı parçalarını bağımsız olarak da günlüklemek mümkündür. Örneğin,
   267            "<code>%m %U%q %H</code>" dizgesi, yöntem, yol, sorgu dizgesi ve
   268            protokolü kaydedecektir; bu dizge "<code>%r</code>" biçem
   269            belirtecinin tek başına yaptığı işi yapar.</dd>
   270  
   271          <dt><code>200</code> (<code>%&gt;s</code>)</dt>
   272  
   273          <dd>Bu, sunucunun istemciye gönderdiği durum kodudur. İsteğin
   274            başarıyla yerine getirilip getirilmediğini gösterdiği için bu bilgi
   275            çok değerlidir. Durum kodu 2 ile başlıyorsa istek başarıyla yerine
   276            getirilmiştir, 3 ile başlıyorsa yönlendirilmiştir, 4 ile başlıyorsa
   277            istemci tarafında bir hata oluşmuştur, 5 ile başlıyorsa sunucuda bir
   278            hata oluşmuştur. Olası hata kodlarının tam listesi <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">RFC2616 Hiper
   279            Metin Aktarım Protokolü</a>nün 10. bölümünde bulunabilir.</dd>
   280  
   281          <dt><code>2326</code> (<code>%b</code>)</dt>
   282  
   283          <dd>Son parça istemciye döndürülen nesnenin yanıt başlığı hariç
   284            uzunluğudur. Eğer istemciye bir içerik döndürülmemişse bu değer
   285            "<code>-</code>" olacaktır. Bunun yerine günlüğe "<code>0</code>"
   286            yazdırmak için <code>%B</code> belirtecini kullanınız.</dd>
   287        </dl>
   288      
   289  
   290      <h3><a name="combined" id="combined">Birleşik Günlük Biçemi</a></h3>
   291        
   292  
   293        <p>Sıklıkla kullanılan diğer bir biçem dizgesi Birleşik Günlük Biçemi
   294          (Combined Log Format) olup şöyle kullanılabilir:</p>
   295  
   296        <div class="example"><p><code>
   297          LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
   298          \"%{User-agent}i\"" combined<br />
   299           CustomLog log/access_log combined
   300        </code></p></div>
   301  
   302        <p>Bu biçem ilaveten 2 alan içermesi dışında Ortak Günlük Biçemi ile
   303          aynıdır. İlave alanların ikisi de <code>%{<em>başlık</em>}i</code>
   304          biçeminde olup buradaki <code><em>başlık</em></code>, HTTP isteğindeki
   305          başlık alanlarından biridir. Bu biçemin kullanıldığı bir erişim
   306          günlüğü girdisi şöyle olurdu:</p>
   307  
   308        <div class="example"><p><code>
   309          127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
   310          /apache_pb.gif HTTP/1.0" 200 2326
   311          "http://www.example.com/start.html" "Mozilla/4.08 [en]
   312          (Win98; I ;Nav)"
   313        </code></p></div>
   314  
   315        <p>Ek alanlar:</p>
   316  
   317        <dl>
   318          <dt><code>"http://www.example.com/start.html"</code>
   319          (<code>\"%{Referer}i\"</code>)</dt>
   320  
   321          <dd>HTTP istek başlığı "Referer". İstemcinin raporladığı isteğin
   322            kaynaklandığı URI. (Bu isteğin yapılmasını sağlayan bağlantıyı
   323            içeren URL veya istek bir sayfanın bileşenleri ile ilgiliyse istenen
   324            sayfanın URL’si olabilir.)</dd>
   325  
   326          <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
   327          (<code>\"%{User-agent}i\"</code>)</dt>
   328  
   329          <dd>Tarayıcı kimliğini içeren HTTP istek başlığı. Bu istemcinin
   330            tarayıcısının raporladığı kendi tanıtım bilgisidir.</dd>
   331        </dl>
   332      
   333  
   334      <h3><a name="multiple" id="multiple">Çok Sayıda Erişim Günlüğü</a></h3>
   335        
   336  
   337        <p>Yapılandırma dosyasında çok sayıda <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesi kullanarak çok
   338          sayıda erişim günlüğü kolayca oluşturulabilir. Örneğin aşağıdaki
   339          yönergelerle 3 tane erişim günlüğü oluşturulacaktır. İlki temel OGB
   340          bilgisini içerirken diğer ikisi isteğin kaynaklandığı yeri ve tarayıcı
   341          kimliğini içerir. Son iki <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> satırı ayrıca, <code>ReferLog</code> ve
   342          <code>AgentLog</code> yönergelerinin etkilerinin nasıl taklit
   343          edileceğini de göstermektedir.</p>
   344  
   345        <div class="example"><p><code>
   346          LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
   347          CustomLog logs/access_log common<br />
   348          CustomLog logs/referer_log "%{Referer}i -&gt; %U"<br />
   349          CustomLog logs/agent_log "%{User-agent}i"
   350        </code></p></div>
   351  
   352        <p>Bu örnek ayrıca, <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesi ile bir takma ad tanımlamanın şart
   353          olmadığını da göstermektedir. Günlük biçemi doğrudan <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinde
   354          belirtilebilir.</p>
   355      
   356  
   357      <h3><a name="conditional" id="conditional">Şarta Bağlı Günlükler</a></h3>
   358        
   359  
   360        <p>Bazı durumlarda istemcinin yaptığı isteğe bağlı olarak erişim
   361          günlüğünde belli girdilerin dışlanması gerekebilir. Bu, <a href="env.html">ortam değişkenleri</a> sayesinde kolayca yerine
   362          getirilebilir. Önce isteğin belli koşulları sağladığını belirten bir
   363          ortam değişkeni ataması yapılır. Bu işlem <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> yönergesi ile yapılır.
   364          Sonra da, ortam değişkenine bağlı olarak isteklerin günlüğe dahil
   365          edilip edilmeyeceği <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinin
   366          <code>env=</code> deyimi kullanılarak belirtilir. Bazı örnekler:</p>
   367  
   368        <div class="example"><p><code>
   369          # yerel konaktan kaynaklanan istekleri imleyelim<br />
   370          SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme<br />
   371          # robots.txt dosyası isteklerini imleyelim<br />
   372          SetEnvIf Request_URI "^/robots\.txt$" kaydetme<br />
   373          # Kalanları günlüğe kaydedelim<br />
   374          CustomLog logs/access_log common env=!kaydetme
   375        </code></p></div>
   376  
   377        <p>Başka bir örnek olarak, Türkçe belge isteklerini bir dosyaya diğer
   378          dillerdeki istekleri başka bir dosyaya kaydedelim.</p>
   379  
   380        <div class="example"><p><code>
   381          SetEnvIf Accept-Language "tr" turkce<br />
   382          CustomLog logs/turkce_log common env=turkce<br />
   383          CustomLog logs/diger_diller_log common env=!turkce
   384        </code></p></div>
   385  
   386        <p>Şarta bağlı günlük kaydının çok esnek ve güçlü olabileceğini
   387          göstermiş olsak da günlük içeriğini denetlemenin tek yolu bu değildir.
   388          Günlük dosyaları sunucu etkinliğini eksiksiz olarak kaydedebildikleri
   389          takdirde daha yararlı olurlar. Günlük dosyalarını sonradan işleme tabi
   390          tutarak istenmeyen girdileri kaldırılmış bir kopya almak hem kolay hem
   391          de daha yararlıdır.</p>
   392      
   393    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   394  <div class="section">
   395  <h2><a name="rotation" id="rotation">Günlük Çevrimi</a></h2>
   396      
   397  
   398      <p>Yükü ağır sunucularda günlük dosyalarına kaydedilen bilginin miktarı
   399        çok büyük boyutlara ulaşabilir. 10.000 istek içeren bir erişim günlüğü
   400        yaklaşık 1MB yer kaplar. Etkin günlük dosyasını belirli aralıklarla
   401        değiştirmek veya silmek gerekebilir. Apache çalışırken dosyayı sürekli
   402        açık tuttuğu ve yazdığı için bu işlem sunucu çalışırken yapılamaz. Bu
   403        bakımdan, günlük dosyası değiştirildikten veya silindikten sonra yeni
   404        dosyanın açılması için <a href="stopping.html">sunucunun yeniden
   405        başlatılması</a> gerekir.</p>
   406  
   407      <p><a href="stopping.html#graceful">Nazikçe yeniden başlatmak</a>
   408        suretiyle sunucunun, mevcut ve bekleyen bağlantıları kaybetmeden yeni
   409        günlük dosyalarını açması sağlanabilir. Bununla birlikte, bu işlem
   410        sırasında sunucunun eski isteklere sunumu bitirene kadar eski günlük
   411        dosyalarına yazmaya devam edebilmesi gerekir. Bu bakımdan, yeniden
   412        başlatmanın ardından eski günlük dosyaları üzerinde bir işlem yapmadan
   413        önce biraz beklemek gerekir. Günlük dosyalarını döndürürken kullanılan
   414        senaryolarda genellikle eski günlük dosyaları yer kazanmak için
   415        sıkıştırılırlar:</p>
   416  
   417      <div class="example"><p><code>
   418        mv access_log access_log.old<br />
   419        mv error_log error_log.old<br />
   420        apachectl graceful<br />
   421        sleep 600<br />
   422        gzip access_log.old error_log.old
   423      </code></p></div>
   424  
   425      <p>Günlük çevrimi yapmanın başka bir yolu da sonraki bölümde açıklandığı
   426        gibi <a href="#piped">borulu günlükler</a> kullanmaktır.</p>
   427    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   428  <div class="section">
   429  <h2><a name="piped" id="piped">Borulu Günlükler</a></h2>
   430      
   431  
   432      <p>Apache httpd hata ve erişim günlüklerini doğrudan bir dosyaya yazmak
   433        yerine bir boru üzerinden başka bir sürece yazabilir. Bu yetenek ana
   434        sunucuya herhangi bir kod eklemeksizin günlükleme esnekliğini şaşırtıcı
   435        derecede arttırır. Günlükler boruya yazılmak istenirse dosya ismini boru
   436        karakteriyle ("<code>|</code>") değiştirip ardına günlük girdilerini
   437        standart girdisinden kabul edecek programın ismini eklemek yeterlidir.
   438        Apache sunucusu başlatıldığı zaman borulu günlük işlemini de
   439        başlatacaktır. Eğer sunucu çalışırken günlükleri kabul eden süreç
   440        çökerse Apache bu programı yeniden başlatır. (Bu son özelliği sebebiyle
   441        bu tekniğe “güvenilir borulu günlükleme” adını veriyoruz.)</p>
   442  
   443      <p>Borulu günlük süreçleri ana Apache httpd süreci tarafından başlatılır
   444        ve bu süreçler ana Apache httpd sürecinin kullanıcı kimliğini miras
   445        alırlar. Yani borulu günlükleme programları aslında root tarafından
   446        çalıştırılmış gibi olur. Bu bakımdan, bu programları basit ve güvenilir
   447        kılmak çok önemlidir.</p>
   448  
   449      <p>Borulu günlüklerin önemli kullanım alanlarından biri de sunucuyu
   450        yeniden başlatmak gerekmeksizin günlük çevrimini mümkün kılmaktır.
   451        Apache HTTP sunucusu bu amaçla kullanılmak üzere
   452        <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> diye bir program içerir. Örneğin,
   453        günlükleri 24 saatte bir döndürmek isterseniz bunu şöyle
   454        yapabilirsiniz:</p>
   455  
   456      <div class="example"><p><code>
   457        CustomLog "|/usr/local/apache/bin/rotatelogs
   458        /var/log/access_log 86400" common
   459      </code></p></div>
   460  
   461      <p>Borunun diğer ucundaki süreci başlatacak komutun tırnak içine
   462        alındığına dikkat ediniz. Bu örnekler erişim günlüğü için verilmişse de
   463        aynı teknik hata günlüğü için de kullanılabilir.</p>
   464  
   465      <p>Hariçten bir uygulama olarak <a href="http://www.cronolog.org/">cronolog</a> isminde buna benzer ancak
   466        çok daha esnek bir program daha vardır.</p>
   467  
   468      <p>Borulu günlükler de şarta bağlı günlükleme kadar güçlü olmakla beraber
   469        çevrimdışı ardıl işlemler gibi daha basit çözümler için
   470        kullanılmamalıdır.</p>
   471  
   472      <p>Öntanımlı olarak borulu günlük süreci bir kabuk sayesinde yeniden
   473        oluşur. (normalde <code>/bin/sh -c</code> ile). Kabuk üzerinden kabuk
   474        çağrılarının özelliğinden dolayı borulu günlük programı çalışırken ve
   475        yeniden başlatma sırasındaki sinyal yakalama sorunlarından dolayı ek
   476        bir kabuk sürecinin başlatılmasi ihtimal dahilindedir.</p>
   477  
   478      <p>Bir kabuk oluşturmaksızın borulu günlük sürecini yeniden oluşturmak
   479        için "<code>|</code>" yerine "<code>||</code>" kullanın:</p>
   480  
   481      <div class="example"><p><code>
   482        # Kabuk kullanmadan "rotatelogs" kullanımı<br />
   483        CustomLog "||/usr/local/apache/bin/rotatelogs
   484        /var/log/access_log 86400" common
   485      </code></p></div>
   486     </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   487  <div class="section">
   488  <h2><a name="virtualhost" id="virtualhost">Sanal Konaklar</a></h2>
   489      
   490  
   491      <p>Bir sunucu çok sayıda <a href="vhosts/">sanal konak</a> ile hizmet
   492        sunarken bunların günlük kayıtları için çeşitli seçenekler mevcuttur.
   493        İlk seçenekte, sanki sunucu tek bir konakla hizmet sunuyormuş gibi
   494        günlük kaydı yapılır. Günlükleme yönergelerini <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümlerinin dışına, ana sunucu
   495        bağlamına yerleştirerek tüm isteklerin aynı erişim ve hata günlüğüne
   496        yazılmasını sağlamak olasıdır. Bu teknik, tek tek sanal konaklar için
   497        kolayca istatistik toplamaya izin vermez.</p>
   498  
   499      <p>Eğer  <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
   500        veya <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> yönergesi bir
   501        <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümüne
   502        yerleştirilirse bu sanal konağa bütün erişimler veya hatalar belirtilen
   503        dosyaya günlüklenecektir. Böyle günlükleme yönergeleri içermeyen sanal
   504        konakların günlükleri hala ana sunucunun hata ve erişim günlüklerine
   505        yazılmaya devam edecektir. Bu teknik az sayıda sanal konak barındıran
   506        sunucular için çok kullanışlıdır. Fakat sanal konak sayısı çok fazlaysa
   507        bu teknikle günlük dosyalarını yönetmek çok karmaşık bir hal alabilir.
   508        Ayrıca, <a href="vhosts/fd-limits.html">yetersiz dosya tanıtıcısı</a>
   509        sorunlarıyla çok sık karşılaşılabilir.</p>
   510  
   511      <p>Erişim günlükleri için çok az bir fedakarlıkla çok iyi bir çözüm vardır.
   512        Günlük biçemine sanal konaklarla ilgili bilgi eklemek suretiyle tüm
   513        konakların aynı günlük dosyasını kullanmaları olasıdır. Böylece günlük
   514        dosyası sonradan her sanal konak için ayrı bir dosya oluşturmak üzere
   515        ayrıştırılabilir. Örneğin, bu işlem için şu yönergeler kullanılıyor
   516        olsun:</p>
   517  
   518      <div class="example"><p><code>
   519        LogFormat "%v %l %u %t \"%r\" %&gt;s %b"
   520        ortaksankon<br />
   521        CustomLog logs/access_log ortaksankon
   522      </code></p></div>
   523  
   524      <p><code>%v</code> belirteci isteği sunan sanal konağın ismini günlüğe
   525        yazmak için kullanılır. Daha sonra <a href="programs/other.html">split-logfile</a> gibi bir program
   526        kullanarak, bu dosyadan her sanal konak için ayrı birer dosya elde
   527        edilebilir.</p>
   528    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
   529  <div class="section">
   530  <h2><a name="other" id="other">Diğer Günlük Dosyaları</a></h2>
   531      
   532  
   533      <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code></li><li><code class="directive"><a href="./mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
   534  
   535      <h3>Gönderilen ve alınan bayt sayısının günlüklenmesi</h3>
   536        
   537  
   538        <p><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code> modülü <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code> yönergesinde kullanılan
   539          biçem belirteçlerine alınan ve gönderilen bayt sayıları için iki
   540          belirteç (%I ve %O) ekler.</p>
   541      
   542  
   543      <h3>Adli Günlük</h3>
   544        
   545  
   546        <p><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code> modülü istemci isteklerinin kanıt
   547          olarak kullanılmak amacıyla günlüklenmesini sağlar. Günlükleme her
   548          istek için isteğe hizmet sunmadan önce ve sonra olmak üzere iki defa
   549          yapılır. Böylece günlük dosyasında başarılı her istek için iki satır
   550          bulunur. Adli günlükleme çok sıkı kurallara tabi olup
   551          kişiselleştirilemez. Güvenlik ve hata ayıklama aracı olarak yararlı
   552          değildir.</p>
   553      
   554  
   555      <h3><a name="pidfile" id="pidfile">PID Dosyası</a></h3>
   556        
   557  
   558        <p>Apache httpd başlatıldığında, ana httpd sürecinin kimliği (PID)
   559          <code>logs/httpd.pid</code> dosyasına kaydedilir. Bu dosyanın ismi
   560          <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> yönergesi ile
   561          değiştirilebilir. Bu süreç kimliği sistem yöneticisi tarafından ana
   562          sürece sinyal göndererek artalan sürecini sonlandırmak veya yeniden
   563          başlatmak için kullanılır. Windows üzerinde bu işlem için
   564          <code>-k</code> komut satırı seçeneği kullanılır. Bu konuda daha
   565          ayrıntılı bilgi edinmek için <a href="stopping.html">Durdurma ve
   566          Yeniden Başlatma</a> belgesine bakınız.</p>
   567      
   568  
   569      <h3><a name="scriptlog" id="scriptlog">Betik Günlüğü</a></h3>
   570        
   571  
   572        <p><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> yönergesi CGI
   573          betiklerinin girdi ve çıktılarını kaydetmenizi mümkün kılmak suretiyle
   574          hata ayıklamaya yardımcı olur. Bu sadece deneysel amaçla kullanılmalı,
   575          asıl sunucuya uygulanmamalıdır. <a href="mod/mod_cgi.html">mod_cgi</a>
   576          belgesinde daha fazla bilgi bulunabilir.</p>
   577      
   578  
   579      <h3><a name="rewritelog" id="rewritelog">Yeniden Yazım Günlüğü</a></h3>
   580        
   581  
   582        <p>Güçlü ve karmaşık  <a href="mod/mod_rewrite.html">mod_rewrite</a>
   583          özellikleri kullanılırken, hata ayıklamaya yardımcı olmak için
   584          <code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code> yönergesini
   585          kullanmak gerekebilir. Yönerge, günlük dosyasında yeniden yazım
   586          motorunun istekleri nasıl dönüştürdüğüyle ilgili ayrıntılı bir döküm
   587          üretir. Ayrıntı seviyesi <code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code> yönergesi ile belirlenir.</p>
   588      
   589    </div></div>
   590  <div class="bottomlang">
   591  <p><span>Mevcut Diller: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
   592  <a href="./fr/logs.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
   593  <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
   594  <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
   595  <a href="./tr/logs.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   596  </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
   597  <script type="text/javascript"><!--//--><![CDATA[//><!--
   598  var comments_shortname = 'httpd';
   599  var comments_identifier = 'http://httpd.apache.org/docs/2.2/logs.html';
   600  (function(w, d) {
   601      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   602          d.write('<div id="comments_thread"><\/div>');
   603          var s = d.createElement('script');
   604          s.type = 'text/javascript';
   605          s.async = true;
   606          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   607          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   608      }
   609      else { 
   610          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   611      }
   612  })(window, document);
   613  //--><!]]></script></div><div id="footer">
   614  <p class="apache">Copyright 2017 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
   615  <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   616  if (typeof(prettyPrint) !== 'undefined') {
   617      prettyPrint();
   618  }
   619  //--><!]]></script>
   620  </body></html>