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