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