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